:: Visual Foxpro, Foxpro for DOS
Очистить текстовый файл
hztp_serg

Сообщений: 577
Откуда: Хмельницкий
Дата регистрации: 19.06.2007
Получаю с 1С текстовый файл. Читаю его:
Local gnFileHandle,nSize,cString
gnFileHandle = FOPEN(VDTXTFILE)
*Поиск конца файла
nSize = FSEEK(gnFileHandle, 0, 2)
IF nSize <= 0
* Если файл пустой
THIS.prj_AppName = ''
THIS.prj_UserLogin = ''
ELSE
* Если файл не пустой, читаем его содержимое
= FSEEK(gnFileHandle, 0, 0) && Стаём на начало файла (BOF)
cString = FREAD(gnFileHandle, nSize)
* Делим символьную строку через разделитель
RzbStr(cString, VDTXTZ, "Cur1C")
SELECT Cur1C
GO TOP
THIS.prj_UserLogin = ALLTRIM(f1)
SKIP
THIS.prj_AppName = ALLTRIM(f1)
ENDIF
дальше хочу очисть файл, чтобы он был пустой. Не подскажите как это сделать?
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
См. Fchsize
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
hztp_serg

Сообщений: 577
Откуда: Хмельницкий
Дата регистрации: 19.06.2007
И ещё вопрос в догонку. Когда читаю текстовый файл, то вместо этого:
[attachment 34265 1c_txt_vfp_002.jpg]

получаю это:

[attachment 34264 1c_txt_vfp_001.jpg]

что нужно сделать, чтобы получить желаемый результат?
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Cpconvert
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
hztp_serg

Сообщений: 577
Откуда: Хмельницкий
Дата регистрации: 19.06.2007
Кодовая страница текстового файла определяется так:

[attachment 34267 1c_txt_vfp_003.jpg]

Чтобы сделать конвертирование нужно указать исходную кодовую страницу, например:
CPCONVERT(10000, 1252, gcCharExpr)
не знаю как в моём случае её определить.
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Пардон.
Видимо strconv надо.
Давненько не писал на фоксе.
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
hztp_serg

Сообщений: 577
Откуда: Хмельницкий
Дата регистрации: 19.06.2007
В результате конвертации:
STRCONV(cString,11)
получаю результат:

[attachment 34268 1c_txt_vfp_004.jpg]

так уже лучше. Только знак вопроса почему-то вначале появляется.
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Скорее всего это BOM или как там точно не помню.
Один или два байта вначале файла. Указывт на кодировку.
Просто выкинь их.
Ratings: 0 negative/0 positive
Re: Очистить текстовый файл
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
FILETOSTR() - и не нужно 90% приведенного кода. Проверить "на пустоту" можно и через Empty(). Отрезать BOM, а точнее проверить что в самом начале именно BOM и стоит, и в зависимости от этого уже производить конвертацию из UTF-8 (при том той части "строки" что находится после BOM) - это ещё более правильно.
Не знаю что делает RzbStr - но т.к. он зачем-то возвращает результат в курсоре, то вполне вероятно он много всего абсолютно ненужного делает.
Советую почитать про функцию ALINES() - конкретно для "разбора строки с разделителем ;" он вполне подходит.


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 25 (Гостей: 25)

© 2000-2024 Fox Club 
Яндекс.Метрика