Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удалить все лишние пробелы из файла / 4 сообщений из 4, страница 1 из 1
21.05.2006, 23:14
    #33741373
Олег1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить все лишние пробелы из файла
Подскажите пожалуйста, можно ли в foxpro программным путем открыть текстовый файл и удалить все лишние пробелы?

Ситуация такая: есть база данных, с помощью foxpro формируется файл .txt, в который заносится информация из этой базы данных (более 1000 записей, в каждой записи по 15 полей). Проблема в том, что в процессе формирования текстового файла в конце каждой строки добавляются пробелы. Пробелов тем больше, чем короче сама строка. Эти пробелы увеличивают вес текстового файла в 3-4 раза.

Не подскажите, есть ли в среде foxpro возможность удалить все пробелы в конце каждой строки?

Заранее спасибо за помощь.
...
Рейтинг: 0 / 0
22.05.2006, 00:55
    #33741427
Заботин А.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить все лишние пробелы из файла
Попробуйте
Код: plaintext
STRTOFILE(STRTRAN(FILETOSTR('filename.txt'),' ',''), 'filename.txt')
Это удалит из файла все пробелы.

Если Вам требуется удалить пробелы только в конце строки, то вероятно это придется делать в цикле. Читать каждую строчку из файла и удалять пробелы функцией RTRIM:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
hndFile = FOPEN('filename.txt')
hndOut = FCREATE('filename2.txt')
DO WHILE !FEOF(hndFile)
  strString = FGETS(hndFile)
  =FPUTS(hndOut, RTRIM(strString)
ENDDO
=FCLOSE(hndFile)
=FCLOSE(hndOut)
...
Рейтинг: 0 / 0
22.05.2006, 02:30
    #33741453
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить все лишние пробелы из файла
Вообще-то, лучше удалять лишние пробелы на этапе формирования этого самого текстового файла. Поскольку разбор "потом" всегда связан с риском удалить что-то лишнее.

Если речь идет о версии не ниже VFP6 и общее количество строк не превышает 65 тысяч, то можно сделать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL laFile( 1 ), lnI, lcFile
lcFile = ""
FOR lnI =  1  TO ALINES(laFile, FileToStr("MyFile.txt"))
	IF Empty(m.lcFile) = .F.
		lcFile = m.lcFile + CHR( 13 ) + CHR( 10 )
	ENDIF
	lcFile = m.lcFile + RTRIM(laFile[m.lnI])
ENDFOR
=StrToFile(m.lcFile,"MyFile.txt")
...
Рейтинг: 0 / 0
23.05.2006, 00:23
    #33743974
Олег1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить все лишние пробелы из файла
Спасибо за быстрые ответы! Помогли!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удалить все лишние пробелы из файла / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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