powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / TXT-->DBF
6 сообщений из 6, страница 1 из 1
TXT-->DBF
    #32703444
sasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zdravstvuyte , u menya takoy vopros: yest texstovoy fayl c rashireniem
'car',napirmer:25.05.02.car,nado chtobi iz etoy textovoqo fayla poluchit
*.dbf fayl.
Kak eto cdelat? Neznayu.Esli mojno obyasnite pojalusta na primere.
Yeshyo nado ctobi ,nabrat datu (napirmer:25.05.02) i posle etoqo
vibrat iz papku imenno etot fayl(napirmer:25.05.02.car) , i posle etoqo
poluchit iz etoqo fayla *.dbf fayl.
...
Рейтинг: 0 / 0
TXT-->DBF
    #32703499
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так не подойдет?
CREATE CURSOR qq1 (t1 c (40))
SELECT qq1
APPEND FROM d:\mysor\25[1].05.02.car TYPE sdf
...
Рейтинг: 0 / 0
TXT-->DBF
    #32703754
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предложенный тобой файл имеет структуру очень неудобныую для закачки в таблицу. Поэтому сначала ее необходимо преобразовать к виду, удобному для закачки.

Если у тебя версия FoxPro 6 или выше, то примерно получаем такой код:

Код: 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.
26.
27.
28.
* Закачиваем содержимое файла в переменную памяти
LOCAL lcFile
lcFile = FileToStr("25[1].05.02.car")

* Заменяем в переменной памяти все символы перевода строк 
* на символы табуляции
lcFile = StrTran(m.lcFile,Chr( 13 )+Chr( 10 ),Chr( 9 ))

* Заменяем последовательность символов "BBF"+Chr( 9 ) 
* обратно на символ перевода строки
lcFile = StrTran(m.lcFile,"BBF"+Chr( 9 ),Chr( 13 )+Chr( 10 ))

* Выгружаем модифицированное содержимое переменной памяти
* обратно в текстовый файл
=StrToFile(m.lcFile,"test.txt")

* Формирую временную таблицу для приема содержимого файла
* Имена можешь дать более содержательные
CREATE CURSOR test (LineNum I, Name1 C( 50 ), Name2 C( 50 ), Fon C( 50 ), ;
Num1 N( 10 ), Num2 N( 10 ), Num3 N( 10 ), Date1 D)

* Для корректного преобразования даты необходимо сделать настройки
SET STRICTDATE TO  0 
SET DATE TO GERMAN

* Собственно закачка данных из преобразованного файла
select test
APPEND FROM test.txt TYPE DELIMITED WITH TAB
BROWSE NOWAIT
...
Рейтинг: 0 / 0
TXT-->DBF
    #32703816
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Вопрос немного не по теме.
Меня интересует выражение
lcFile = StrTran(m.lcFile,Chr(13)+Chr(10),Chr(9))
А почему не так lcFile = StrTran(lcFile,Chr(13)+Chr(10),Chr(9))
Зачем m.lcFile?
С уважением,
...
Рейтинг: 0 / 0
TXT-->DBF
    #32703850
sasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U menya versiya 5. Naverno poetomu, Foxpro " 'filetostr.prg' ne sushestvuet"
otvechaet. I yeshyo v stroke 'SET STRICTDATE TO 0' -->'Komanda soderjit
neraspoznannoe klyuchevaya slova'
...
Рейтинг: 0 / 0
TXT-->DBF
    #32703950
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miv32Добрый день!
Вопрос немного не по теме.
Меня интересует выражение
lcFile = StrTran(m.lcFile,Chr(13)+Chr(10),Chr(9))
А почему не так lcFile = StrTran(lcFile,Chr(13)+Chr(10),Chr(9))
Зачем m.lcFile?
С уважением,
Префикс "m." говорит FoxPro о том, что далее следует переменная памяти. В противном случае FoxPro сначала предпологает, что это имя поля таблицы, открытой в текущей рабочей области. И только если такового не находится начинает поиск среди переменных памяти.

sasha123U menya versiya 5. Naverno poetomu, Foxpro " 'filetostr.prg' ne sushestvuet"
otvechaet. I yeshyo v stroke 'SET STRICTDATE TO 0' -->'Komanda soderjit
neraspoznannoe klyuchevaya slova'
Для VFP5 код несколько модифицируется, поскольку в нем нет команд StrToFile(), FileToStr() и SET STRICTDATE. Получится примерно следующее


Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
* Создаем временную таблицу с Memo-полем в которое 
* собственно и будет закачано содержимое текстового файла для обработки
CREATE CURSOR curFile (FileText M)
* Создаем пустую строку для приема информации в Memo-поле
APPEND BLANK

* Закачиваем содержимое файла в MEMO-поле
select curFile
APPEND MEMO FileText FROM "25[1].05.02.car"

* Копируем содержимое MEMO-поля в переменную памяти
LOCAL lcFile
lcFile = curFile.FileText

* Заменяем в переменной памяти все символы перевода строк 
* на символы табуляции
lcFile = StrTran(m.lcFile,Chr( 13 )+Chr( 10 ),Chr( 9 ))

* Заменяем последовательность символов "BBF"+Chr( 9 ) 
* обратно на символ перевода строки
lcFile = StrTran(m.lcFile,"BBF"+Chr( 9 ),Chr( 13 )+Chr( 10 ))

* Записываем модифицированное содержимое переменной памяти
* обратно в MEMO-поле
select curFile
REPLACE FileText WITH m.lcFile

* И выгружем из Memo-поля в текстовый файл
COPY MEMO FileText TO test.txt

* Формирую временную таблицу для приема содержимого файла
* Имена можешь дать более содержательные
CREATE CURSOR test (LineNum I, Name1 C( 50 ), Name2 C( 50 ), Fon C( 50 ), ;
Num1 N( 10 ), Num2 N( 10 ), Num3 N( 10 ), Date1 D)

* Для корректного преобразования даты необходимо сделать настройку
SET DATE TO GERMAN

* Собственно закачка данных из преобразованного файла
select test
APPEND FROM test.txt TYPE DELIMITED WITH TAB

* Модифицируем дату, поскольку даты вроде  01 . 01 . 02  в данном случае будут
* восприняты как  01 . 01 . 1902 
REPLACE FOR Between(YEAR(Date1), 1900 , 1950 ) ;
Date1 WITH GoMonth(Date1, 12 * 100 )

* Отображаем результат
SET CENTUTY ON
BROWSE NOWAIT
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / TXT-->DBF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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