powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как создать такой текстовый файл??
16 сообщений из 16, страница 1 из 1
Как создать такой текстовый файл??
    #32823133
alex_dch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для банка требуется на дискетке принести информацию в таком виде:


АО “МОСХЛЕБТОРГ”
12 июня 2001 г.
отделение «Алексеевское»
R ; VE
RUB

ИВАНОВА;СВЕТЛАНА;НИКОЛАЕВНА;МОНОЛИТ;VII-МЮ №3214564;21.12.80 43 ОМ Г.МОСКВЫ;МОСКВА,УЛ. ЗЕЛЕНАЯ Д.18, КОРП. 3, КВ.123; 19650517;456-76-13;123-12-78;
SVETLANA IVANOVA ПЕТРОВА; ЕЛЕНА;СЕРГЕЕВНА;; 2456 3214564;11.01.01 57 ОМ Г.МОСКВЫ;МОСКВА,УЛ.ВОЛХОНКА Д.2, КВ.11;19800501; ; ; ;


первый блок и второй делаю разными запросами, а как
это все объединить в одном текстовом файле,
чтоб форматирование было как указано??
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823229
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для второй выборки COPY TO <FileName> DELIMITED WITH ";"
Потом lcFile=FILETOSTR(<FileName>), дописываешь заголовок и
STRTOFILE(lcFile,<FileName>).
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823240
AiSK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, может слишком просто кажется и есть какой-то сложный момент , но

IF FILE('A:\...файл на дискете')
glfile = FOPEN(''A:\...файл на дискете',12)
ELSE
glfile = FCREATE(''A:\...файл на дискете')
ENDIF
IF glfile < 0
WAIT 'Не могу открыть файл ... для записи ' WINDOW NOWAIT
ELSE

=FWRITE(glfile,СТРОКА+CHR(13))
* можно использовать и FPUTS() – записывает строку в файл и добавляет
*в конец перевод строки
* Для вставки разрывов используйте CHR(13)

=FCLOSE(glfile)

ENDIF

Если под форматирование имеете в виду вставку точек с запятой, то посмотрите символьные функции
http://www.foxhelp.ru/FunkciiVFP678?v=1e64
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823476
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET TEXTMERGE (TO, ON) и TEXT, ENDTEXT, /, //

SET PRINTER (TO, ON) и ?, ??
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823533
alex_dch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IF FILE('c:\vygruzka.txt')
glfile = FOPEN('c:\vygruzka.txt',12)
ELSE
glfile = FCREATE('c:\vygruzka.txt')
ENDIF
IF glfile < 0
WAIT ' не могу писать в файл.. ' WINDOW NOWAIT
ELSE

=FWRITE(glfile,'Название+CHR(13))
=FWRITE(glfile,'12 июня 2001 г.'+CHR(13))
=FWRITE(glfile,'îòäåëåíèå "Àëåêñååâñêîå"'+CHR(13))
=FWRITE(glfile,'R' + ';' + 'VE' + CHR(13))
=FWRITE(glfile,'RUB' + CHR(13))
=FWRITE(glfile,CHR(13))


=FCLOSE(glfile)

ENDIF

для составления первого блока все замечательно работает!
как теперь забирать значения из курсора, для составления
второго блока??

спасибо за ссылочку на фоксхелп, отличный ресурс!

а еще что делать с кодировкой при копировании из фокса,
некоторые зюки оставил в коде, чтоб было видно о чем я
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823766
alex_dch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... собственно низ запроса который курсор формирует

into cursor crsVygruz ;
where fc.enddate >= dd1 and not deleted() ;
order by surname, firstname, secondname



IF FILE('c:\vygruzka.txt')
glfile = FOPEN('c:\vygruzka.txt',12)
ELSE
glfile = FCREATE('c:\vygruzka.txt')
ENDIF
IF glfile < 0
WAIT 'не могу открыть файл.. ' WINDOW NOWAIT
ELSE

=FWRITE(glfile,'Íàèìåíîâàíèå îðãàíèçàöèè'+CHR(13))
=FWRITE(glfile,'12 èþíÿ 2001 ã.'+CHR(13))
=FWRITE(glfile,'îòäåëåíèå "Àëåêñååâñêîå"'+CHR(13))
=FWRITE(glfile,'R' + ';' + 'VE' + CHR(13))
=FWRITE(glfile,'RUB' + CHR(13))
=FWRITE(glfile,CHR(13))

select crsVygruz
go top

scan
=FWRITE(glfile,allt(surname)+ ';' + allt(firstname)+ ';' + allt(secondname) + CHR(13))
endscan

ENDIF
=FCLOSE(glfile)



собственно вот так и все работает!
сам допер! :))
но все равно всем спасибо!
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823773
alex_dch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А с кодировкой при копировании всетаки можно что-то сделать????
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823782
AiSK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для составления первого блока все замечательно работает!
как теперь забирать значения из курсора, для составления
второго блока??


Для составления второго блока не закрывайте файл командой
=FCLOSE(glfile) (Только в конце работы). Переключаетесь для работы с курсором в его рабочую область SELECT ом (подозреваю. что в курсор выводите информацию для второго блока) и последовательно сканируете его
SELECT ИмяКурсора

SCAN
SCATTER MEMVAR
*обрезаете ALLTRIM-ом строковые переменные (не забудьте сконвертировать *нестроковые переменные функцией STR)
*
m.СТРОКА=m.(ALLTRIM(имена полей курсора - поле 1))+';'+ ;
m.(ALLTRIM(имена полей курсора - поле 2))+... и так далее
=FWRITE(glfile,m.СТРОКА+CHR(13))
ENDSCAN

=FCLOSE(glfile)


а еще что делать с кодировкой при копировании из фокса,
некоторые зюки оставил в коде, чтоб было видно о чем я

Вы , может , просматривает файл в DOS кодировке (кстати , спросите у банка, текстовый файл в какой кодировке?). В любом случае воспользуйтесь функцией CPCONVERT
Скорее всего , вам нужно
m.СТРОКА=CPCONVERT(1251,866,m.СТРОКА)
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823801
alex_dch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну я почти так и сделал..

только с подстановкой наверно более профессионально?

SCAN
SCATTER MEMVAR
*обрезаете ALLTRIM-ом строковые переменные (не забудьте сконвертировать *нестроковые переменные функцией STR)
*

m.СТРОКА=m.(ALLTRIM(имена полей курсора - поле 1))+';'+ ;
m.(ALLTRIM(имена полей курсора - поле 2))+... и так далее


=FWRITE(glfile,m.СТРОКА+CHR(13))
ENDSCAN

=FCLOSE(glfile)
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823828
AiSK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m.СТРОКА=m.(ALLTRIM(имена полей курсора - поле 1))+';'+ ;
m.(ALLTRIM(имена полей курсора - поле 2))+... и так далее

Ошибся маленько
ALLTRIM(m.имена полей курсора - поле 1))...

SCATTER MEMVAR просто потому, что удобнее писать возможные манипуляции
(преобразование типа данных и т.д.) с переменными , а не полями
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32823911
alex_dch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select crsVygruz
SCATTER MEMVAR
go top


scan
m.stroka = allt(m.surname)+ ';' + allt(m.firstname)+ ';' + allt(m.secondname)
=FWRITE(glfile,m.stroka + CHR(13))
endscan

ENDIF
=FCLOSE(glfile)

если делаю так, то пишет только 2 кавычки, а поля пустые
а если
m.stroka = allt(m.surname)+ ';' + allt(m.firstname)+ ';' + allt(m.secondname)
до "скана" то заполняет полько первым значением, и это понятно..


а еще научите как выделять в прямоугольник текст в форуме, чтоб отделить
важное
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32824050
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не ошибаюсь то можно еще и так
scan
FPUTS(glfile,allt(m.surname)+ ';' + allt(m.firstname)+ ';' + allt(m.secondname))
endscan
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32824060
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все дело в префиксе m.

select crsVygruz
scan
fputs(glfile,allt(crsVygruz.surname)+ ';' + allt(crsVygruz.firstname)+ ';' + allt(crsVygruz.secondname))
endscan
=FCLOSE(glfile)

go top - для scan необязательно
сразу не въехал
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32824102
AiSK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select crsVygruz
SCATTER MEMVAR
go top


scan
m.stroka = allt(m.surname)+ ';' + allt(m.firstname)+ ';' + allt(m.secondname)
=FWRITE(glfile,m.stroka + CHR(13))
endscan

ENDIF
=FCLOSE(glfile)

если делаю так, то пишет только 2 кавычки, а поля пустые
а если
m.stroka = allt(m.surname)+ ';' + allt(m.firstname)+ ';' + allt(m.secondname)
до "скана" то заполняет полько первым значением, и это понятно..

1) При SCAN не нужен GO TOP
2) SCATTER MEMVAR внутри цикла сканирования (должен повторяться), а не один раз в начале. Команда преобразует поля в переменные ( для удобства чтобы не путать с названиями полей переменные начинаются на m.)



а еще научите как выделять в прямоугольник текст в форуме, чтоб отделить
важное


Пользуйся кнопками QUOTE (помещая текст цитаты между парами появляющихся скобок) или чтобы выделить блок кода кнопкой SRC
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32824120
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насчет кодовой страницы
select crsVygruz
scan
fputs(glfile,cpconvert(1251,866,allt(crsVygruz.surname)+ ';' + allt(crsVygruz.firstname)+ ';' + allt(crsVygruz.secondname)))
endscan
...
Рейтинг: 0 / 0
Как создать такой текстовый файл??
    #32824393
Фотография MaestroEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ведь предлогал тебе Urri солидное стройное решение...

Set Textmerge On
Set textmerge to (файл) additive

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


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