powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / конвертация текстового файла
7 сообщений из 7, страница 1 из 1
конвертация текстового файла
    #36102119
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток. имеется текстовый файл следующего содержания:
______БЕЛЯЕВ________ЮРИЙ____________КОНСТАНТИНОВИЧ______300.00
______БЕЛЯЕВА_______ТАТЬЯНА_________ИЛЬИНИЧНА____________200.00
"_"=" "
подскажите пожалуйста, как его содержание можно привести к виду:
БЕЛЯЕВ,ЮРИЙ,КОНСТАНТИНОВИЧ,300.00
БЕЛЯЕВА,ТАТЬЯНА,ИЛЬИНИЧНА,200.00

Видно, что каждое "слово" занимает определенную позицию. Я так понимаю что нужно построчно выкусывать позиции "от и до" соответственно номеру символа в строке и обрезать пробелы, в дальнейшем вставляя зпт. Но проблема в том, что я не совсем понимаю как открыть файл и как перемещаться по строчкам, начитывая нужный мне промежуток символов в переменную. Помогите пожалуйста!
...
Рейтинг: 0 / 0
конвертация текстового файла
    #36102141
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Local laStr[ 1 ], lnStr, lcStr
Text to lcStr NOSHOW 
______БЕЛЯЕВ________ЮРИЙ____________КОНСТАНТИНОВИЧ______300. 00  
______БЕЛЯЕВА_______ТАТЬЯНА_________ИЛЬИНИЧНА____________200. 00  
EndText
Set library to Addbs(Home())+'foxtools.fll' ADDITIVE
For lnStr= 1  to ALines(laStr,lcStr)
	? chrtranc(Alltrim(reduce(laStr[lnStr],"_"))," ",",")
endfor
...
Рейтинг: 0 / 0
конвертация текстового файла
    #36102145
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо проблема в том, что я не совсем понимаю как открыть файл

вместо строк
Код: plaintext
1.
2.
3.
4.
Text to lcStr NOSHOW 
______БЕЛЯЕВ________ЮРИЙ____________КОНСТАНТИНОВИЧ______300. 00  
______БЕЛЯЕВА_______ТАТЬЯНА_________ИЛЬИНИЧНА____________200. 00  
EndText

нужно написать
Код: plaintext
1.
2.
3.
4.
if filetostr(...) && прочитайте справку

   ...
endif
...
Рейтинг: 0 / 0
конвертация текстового файла
    #36102152
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, забыла написать что это нужно на FoxPro 2.6
...
Рейтинг: 0 / 0
конвертация текстового файла
    #36102159
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда ждите ответа от того, кто работает с устаревшей версией.

открытие и перемещение там тделают так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
lnHandle = fopen(....)
if lnHandle> 0 
   do while not feof(lnHandle)
       ? lcStr = fget(lnHandle)
   enddo
   =fclose(lnHandle)
endif 

...
Рейтинг: 0 / 0
конвертация текстового файла
    #36102282
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niara,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
private lnFileHandle
lnFileHandle=fopen([primer.txt]) && использованы  2  строчки примера
if lnFileHandle> 0 
 private lnFileOutput
 lnFileOutput=fcreate([primer_o.txt])
 if lnFileOutput> 0 
  private lcStr
  do while !feof(lnFileHandle)
   lcStr=fgets(lnFileHandle, 600 )
   do while at([__],lcStr)> 0 
    lcStr=strt(lcStr,[__],[_])
   enddo
   do while left(lcStr, 1 )$[,_]
    lcStr=subs(lcStr, 2 )
   enddo
   =fputs(lnFileOutput,chrt(lcStr,[_],[,]))
  enddo
  else
  =messageb([Ошибка открытия файла], 16 ,[ошибка])
 endif
 else
 =messageb([ошибка открытия исходного файла], 16 ,[ Ошибка])
endif
=fclose(lnFileHandle)
=fclose(lnFileOutput)
modi file [primer_o.txt] nowait

прошелмимо, fpd не устаревшая, она просто другая... :)
...
Рейтинг: 0 / 0
конвертация текстового файла
    #36102287
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hndFile = FOPEN('temp.txt')
hndOut = FCREATE('tmp.txt')
DO WHILE !FEOF(hndFile)
strString = FGETS(hndFile)
fam=substr(strstring,39,29)
name=substr(strstring,69,30)
otch=substr(strstring,99,34)
sch=substr(strstring,134,20)
summ=substr(strstring,162,15)
=FPUTS(hndOut, alltrim(fam)+';'+alltrim(name)+';'+alltrim(otch)+';'+alltrim(sch)+';'+alltrim(summ))
ENDDO
=FCLOSE(hndFile)
=FCLOSE(hndOut)

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


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