Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / vfp против .txt / 9 сообщений из 9, страница 1 из 1
15.08.2008, 15:20
    #35490052
Alex-ZZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
Записываю значение переменной MES в текстовый файл, путь к которому = PATHTXT. Проблема в том, что если предыдущее значение MES было длине чем последующее, то они как бы накладываются друг на друга и получаем сообщение плюс кусок предыдущего, какой командой чистить txt или еще как то можно убрать предыдущее значение?

Код: plaintext
1.
2.
3.
4.
OTKR=FOPEN(PATHTXT, 2 ) 
IF OTKR<>- 1  
   	FWRITE(OTKR,MES) 
	FCLOSE(OTKR) 
ENDIF 
...
Рейтинг: 0 / 0
15.08.2008, 15:26
    #35490077
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
StrToFile() поизучай
...
Рейтинг: 0 / 0
15.08.2008, 15:41
    #35490124
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
Alex-ZZZЗаписываю значение переменной MES в текстовый файл, путь к которому = PATHTXT. Проблема в том, что если предыдущее значение MES было длине чем последующее, то они как бы накладываются друг на друга и получаем сообщение плюс кусок предыдущего, какой командой чистить txt или еще как то можно убрать предыдущее значение?

Код: plaintext
1.
2.
3.
4.
OTKR=FOPEN(PATHTXT, 2 ) 
IF OTKR<>- 1  
   	FWRITE(OTKR,MES) 
	FCLOSE(OTKR) 
ENDIF 

Для полной перезаписи файла обычно пользуют не fOpen(), а FCreate().
...
Рейтинг: 0 / 0
15.08.2008, 15:57
    #35490165
Alex-ZZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
Sergey Sizov.Для полной перезаписи файла обычно пользуют не fOpen(), а FCreate().

Файл создан на сетевом диске, то есть просто удалить его и создать занова нельзя, нужно изменить именно его содержимое.
...
Рейтинг: 0 / 0
15.08.2008, 16:23
    #35490254
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
Alex-ZZZпросто удалить его и создать занова нельзя, нужно изменить именно его содержимое.

Код: plaintext
StrToFile(MES, PATHTXT)
Так работает?
...
Рейтинг: 0 / 0
17.08.2008, 02:30
    #35491334
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
Код: plaintext
=FCHSIZE(OTKR, 0 )
?

Вернее, так:
Код: plaintext
1.
2.
3.
4.
m.OTKR=FOPEN(m.PATHTXT,  2 ) 
IF m.OTKR<>- 1  .and. FCHSIZE(m.OTKR,  0 )= 0 
   	FWRITE(m.OTKR, m.MES) 
	FCLOSE(m.OTKR)
ENDIF
...
Рейтинг: 0 / 0
17.08.2008, 08:37
    #35491364
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
>
> m.OTKR=FOPEN(m.PATHTXT, 2)
> IF m.OTKR<>-1 .and. FCHSIZE(m.OTKR, 0)=0
> FWRITE(m.OTKR, m.MES)
> FCLOSE(m.OTKR)
> ENDIF

Не вдаваясь в суть:

Закрытие файла не должно зависеть от того, удалось/не удалось изменить
размер файла:

m.OTKR=FOPEN(m.PATHTXT, 2)
IF m.OTKR<>-1
if FCHSIZE(m.OTKR, 0)=0
FWRITE(m.OTKR, m.MES)
endif
FCLOSE(m.OTKR)
ENDIF


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18.08.2008, 09:41
    #35491873
Alex-ZZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
Dima T
Код: plaintext
StrToFile(MES, PATHTXT)
Так работает?

Чето нет, надо скачать хелп поновее, а то в моем нету команды StrToFile

Сделал так:

Код: plaintext
1.
2.
3.
4.
5.
OTKR=FOPEN(PATHTXT, 2 ) 
IF OTKR<>- 1 
        FCHSIZE(OTKR, 0 )
	FWRITE(OTKR,MES) 
	FCLOSE(OTKR) 
ENDIF 

ВСЕМ СПАСИБО ЗА ПОМОЩЬ ))))
...
Рейтинг: 0 / 0
18.08.2008, 12:12
    #35492250
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vfp против .txt
StrToFile() и FileToStr() были введены в VFP6.

FWRITE() только и исключительно заменяет символы с текущей позиции, на указанный текст (символьную строку). Эта функция не может добавить (вставить) или удалить символы в середине файла. После ее использования размер файла остается неизменным.

Исключение - это запись в конец файла, поэтому, если надо изменить размер файла, то создают новый файл.

Для версий младше VFP6 можно "прокачивать" файл через мемо-поле

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE CURSOR Content (txtFile M)
APPEND BLANK
APPEND MEMO txtFile FROM (m.PATHTXT)

* Модификация мемо-поля курсора
...

* и выгрузка результата в файл с тем же именем
COPY MEMO txtFile TO (m.PATHTXT)

Поскольку в этом случае создается новый файл (пусть и с тем же самым именем), то его размер может быть любым. И допустимы любые изменения содержимого. А с содержимым мемо-поля можно работать как с обычной символьной строкой.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / vfp против .txt / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]