Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Проблема с записью в текстовый файл.  [new]
dima_18
Member

Откуда:
Сообщений: 373
Добрый день!

Подскажите пожалуйста при решении такой проблемы, с которой недавно столкнулся.
Запись данных в файл.
IF FILE('c:\podchet\ekonomnew.txt')
gnErrFile = FOPEN('ekonomnew.txt',2)
ELSE
gnErrFile = FOPEN('ekonomnew.txt',2)
ENDIF

цикл

FPUTS(gnErrFile,STR(q,8,3)+' '+STR(c1,8,3)+' '+STR(l,8,3))
q=q+0.004

конец цикла

=FCLOSE(gnErrFile)

Вот старый код, который я ранее использовал и он выводил данные. Я использовал 8 фокспро + wind7 (операционная система).


На другом компьютере стоит: фокспро9 + 10 wind

Все аналогично. Я запускаю программу и в текстовый файл в последнем случае все пусто. Т.е. туда не пишет ничего.
Запускаю в старом варианте - все хорошо.

Очень странно все.
Подскажите пожалуйста, что за ерунда происходит.
Это проблема в опер. системе, в фокспро или др.

Спасибо большое.
Может попробовать другие формы записи тогда?!

Как тестовый вариант проверки. Жду от Вас вариантов и помощи. Спасибо еще раз.
7 мар 21, 11:57    [22290865]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с записью в текстовый файл.  [new]
Redrik
Member

Откуда:
Сообщений: 825
dima_18,

IF FILE('c:\podchet\ekonomnew.txt')
gnErrFile = FOPEN('ekonomnew.txt',2)
ELSE
gnErrFile = FOPEN('ekonomnew.txt',2)
ENDIF


1) Независимо от результата FILE('c:\podchet\ekonomnew.txt') выполняется FOPEN('ekonomnew.txt',2)
Зачем IF?
2) Ищем ekonomnew.txt в папке c:\podchet, а открываем в текущей... Они "равны"?
3) Права доступа?...
7 мар 21, 14:45    [22290899]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с записью в текстовый файл.  [new]
dima_18
Member

Откуда:
Сообщений: 373
Спасибо, Redrik за ответ!

Отвечу так:
начну с цикла, тут было и иной текст, я его и так упростил, если файла нет, то создаю, а если есть, то туда записываю. Но и это не помогло.

Про доступ, а честно не знаю, как проверить поэтому и спрашиваю, т.к. если руками я заношу и создаю в этой директории, то все хорошо.

Поэтому теряюсь в догадках.
7 мар 21, 18:53    [22290937]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с записью в текстовый файл.  [new]
Dima T
Member

Откуда:
Сообщений: 16063
Открывай с указанием полного пути
gnErrFile = FOPEN('c:\podchet\ekonomnew.txt',2)

И проверяй что открылся
if gnErrFile < 0
   MessageBox("Файл не открылся")
   return
endif
7 мар 21, 19:04    [22290942]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с записью в текстовый файл.  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7919
1. Работа используемых функций не отличается в версии VFP8 и VFP9
2. Чтение/запись текстового файла формата ASCII не изменилась в операционных системах Win7 и Win10

Что Вам надо проверить:

1. Если FoxPro не находит файл по явно указанному пути доступа он начинает искать его в директории по умолчанию и по путям, указанным в настройке SET PATH. Т.е. вполне может оказаться так, что Вы работаете не с тем файлом. Проверьте, с каким именно файлом Вы работаете через другие файловые функции, ADIR, например. А также текущие настройки

?'default=' + SET("DEFAULT")
?'path=' + SET("PATH")


2. После завершения записи в файл командой FCLOSE прочитайте его содержимое там же из FoxPro

?FileToStr(...)
MODIFY FILE ...


Т.е. убедитесь, что с точки зрения FoxPro запись была выполнена

3. Если запись прошла успешно, то поищите через проводник Windows или любой другой файловый менеджер одноименный файл по всему диску. Может, так проще будет найти, куда реально пошла запись и сделать соответствующие выводы
7 мар 21, 19:15    [22290944]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить