Автор Тема: Функции FWRITE(), FCREATE() в Clip  (Прочитано 5500 раз)

Оффлайн tryfelek

  • Завсегдатай
  • *
  • Сообщений: 51
    • Email
Функции FWRITE(), FCREATE() в Clip
« : 19.04.2011 17:57:23 »
Здравствуйте!
У меня снова проблеммы с Clip'ом. есть программа написанная на clipper в ДОСе которая из файла базы данных ватаскивает информацию и пишет ее в текстовик в нужном мне виде. в этой программе используюстся функции FCREATE() И  FWRITE() для записи моего выходного текстового файла.  Под ДОСом все работает изюмительно.  Переношу данную прогу на CLIP в LINUX. При сборке исполняемого файла не ругается. Запускаю исполняемый файл, ругани нет, то текстовики создаются пустые, в них ничего не записывается!!! ПОЧЕМУ ЭТО МОЖЕТ БЫТЬ??  ГДЕ КОПНУТЬ?
« Последнее редактирование: 19.04.2011 21:55:14 от ruslandh »
С Уважением tryfelek!

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: ФУНКЦИИ FWRITE(), FCREATE() В CLIP
« Ответ #1 : 19.04.2011 18:47:43 »
Возможно, проблема с правами.

Рекомендуется в программе прописывать
set translate path offпри проблемах с путями.

У себя я не воспроизвёл:
hF := fcreate( "file.txt" )
if hF < 0
? "Error creating file:",ferrorstr()
?
        break
endif
fwrite( hF, "TEXT" )
if hF < 0
? "Error writing file:",ferrorstr()
?
        break
endif
fclose( hF )
« Последнее редактирование: 19.04.2011 19:17:19 от Skull »
Андрей Черепанов (cas@)

Оффлайн tryfelek

  • Завсегдатай
  • *
  • Сообщений: 51
    • Email
Re: Функции FWRITE(), FCREATE() в Сдшз
« Ответ #2 : 19.04.2011 21:47:47 »
а после fcreate() надо fopen() делать или сразу можно fwrite()?

проблемы с правами на доступ к файлам базы данных?

set translate path off - что делает?
« Последнее редактирование: 19.04.2011 21:57:30 от tryfelek »
С Уважением tryfelek!

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн tryfelek

  • Завсегдатай
  • *
  • Сообщений: 51
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #4 : 20.04.2011 09:48:07 »
а не может такого быть чтоб на свежем линухе это вообще не работало? насколько я понимаю это команды низкого уровня чисто дос
С Уважением tryfelek!

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #5 : 20.04.2011 10:00:15 »
Причём тут дос? Clip - это язык программирования, а не ОС.

Оффлайн tryfelek

  • Завсегдатай
  • *
  • Сообщений: 51
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #6 : 20.04.2011 12:08:42 »
извиняюсь за некоректность сказанного!
в программе написано нечто такое
nf=fcreate(file.txt, 0)
fwrite(nf, "hello russia!")
в результате файл file.txt создается но пустой
а если сделать так
set alternate on
set alternate to file.txt
? "hello russia!"
то в файл file.txt запишется все что хочется
почему так может быть?
С Уважением tryfelek!

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #7 : 20.04.2011 12:54:19 »
ошибки синтаксиса. типа = вместо := ?
(извините, Clip не знаю - смотрю только то, что написали Skull и вы)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #8 : 20.04.2011 13:53:38 »
nf=fcreate(file.txt, 0)
fwrite(nf, "hello russia!")
У меня выдало ошибку при указании имени файла без кавычек.
Следующий код (без всяких флагов) работает:
hF = fcreate( "file.txt", 0 )
fwrite( hF, "TEXT" )
fclose( hF )
Проверяйте ferror() после операций.

2ruslandh: В CLIP присваивание можно делать и так и этак.
Андрей Черепанов (cas@)

Оффлайн tryfelek

  • Завсегдатай
  • *
  • Сообщений: 51
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #9 : 20.04.2011 14:55:18 »
вот задача-то блин.
 на стареньком линухе 2.4 все работает на отлично, переношу исполняемый файл на линух поновее 5.0 отрабатывает не ругается но в файл не пишет
а если сделать так:
hf=fceate("file.txt", 0)
asd:=fwrite(hf, "hello!!!!")
? asd

то выводит на консоль -1, чую это ничего хорошего не означает
С Уважением tryfelek!

Оффлайн tryfelek

  • Завсегдатай
  • *
  • Сообщений: 51
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #10 : 20.04.2011 14:58:41 »
может дело в настройках самого линуха????

может у меня не поставлена какая нибудь библиотека клипа???
я уже не знаю с какой стороны и подойти к этой проблеме

а может версия клипа?
« Последнее редактирование: 20.04.2011 15:01:09 от tryfelek »
С Уважением tryfelek!

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #11 : 20.04.2011 15:09:00 »
может дело в настройках самого линуха????

может у меня не поставлена какая нибудь библиотека клипа???
я уже не знаю с какой стороны и подойти к этой проблеме

а может версия клипа?
У меня clip-1.2.0cvs-alt3.qa1
Соберите и приведите вывод следующей программы:
hF = fcreate( "file.txt", 0 )
? ferror(), ferrorstr()
i = fwrite( hF, "TEXT" )
? i, ferror(), ferrorstr()
fclose( hF )
?

Особенно важно посмотреть, что возвращает ferror() и ferrorstr()
Андрей Черепанов (cas@)

Оффлайн tryfelek

  • Завсегдатай
  • *
  • Сообщений: 51
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #12 : 21.04.2011 09:44:08 »
у меня стоит clip-1.2.0.cvs-alt3.i586

собрал пргу как вы писали, слизал все знак в знак, на выходе создается пустой файл file.txt
на консоль выводится следующее
0 Success
-1 0 Success
насколько я понимаю ошибок он не видит
С Уважением tryfelek!

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #13 : 21.04.2011 09:49:48 »
А какие права у созданного файла?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Re: Функции FWRITE(), FCREATE() в Clip
« Ответ #14 : 21.04.2011 11:34:11 »
-1 0 Success
Да, странная ситуация, возможно, ошибка.
Запустите strace ./programm 2> log.txtВывод (файл log.txt) приложите сюда.
Андрей Черепанов (cas@)