powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / импорт базы данных в офрмате ASCII
10 сообщений из 35, страница 2 из 2
импорт базы данных в офрмате ASCII
    #34544249
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ионас UrriА Экселем чего бы не воспользоваться?
________
Не дадим распространиться заразе политкорректности!
Его применение никак поставленную задачу не решает. Импортируется в Эксель все в одно единственное поле.Странно, а у меня получалось ;-)

Впрочем, ну его, Эксель, ведь в самом FoxPro есть куча команд, которые можно использовать для разбора текстовых файлов.
Вот навскидку несколько подходов:
1. FOPEN - в цикле FGETS и далее разбор строки (SUBSTR, ALLTRIM) - FCLOSE
2. Закачай файл в мемо и далее в цикле работай со строками мемо. Пригодятся SET MEMOWIDTH и MLINE(), MEMLINES(). Разбор строки - как в 1.
3. конвертируй файл прямо в строку (FILETOSTR()), которую потом и разбирай.
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34544346
Ионас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urri[quot Ионас]
1. FOPEN - в цикле FGETS и далее разбор строки (SUBSTR, ALLTRIM) - FCLOSE
2. Закачай файл в мемо и далее в цикле работай со строками мемо. Пригодятся SET MEMOWIDTH и MLINE(), MEMLINES(). Разбор строки - как в 1.
3. конвертируй файл прямо в строку (FILETOSTR()), которую потом и разбирай.
А примерчик какой-нить небольшой не мог бы скинуть, раз такое делал думаю тебе это было бы не сложно.
Перевод в строку мне нравится. Поскольку мне необходимо эти данные чуть-чуть обработать.
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34544445
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
* предположим, у нас аски-файл такой:
* Строка1   Y  123 . 45 
* Строчка2  N -. 333 
* ...
* И есть таблица "Выход", куда надо класть результат с полями NAME C( 10 ), FLAG L, QTY N( 10 , 3 )
lnOldMemoWidth = set('MEMOWIDTH')
lnOldArea = select()
set memowidth to  250  && надеюсь, хватит
select  0 
create cursor mmm (mm m)
append blank
append memo mm from (твой_файл)
lnLines = MEMLINES(mmm.mm)
for lnI =  1  to lnLines
  lcStrOfFile = MLINE(mmm.mm,lnI)
  lcVal1 = alltrim(substr(lcStrOfFile, 1 , 10 ))
  llVal2 = substr(lcStrOfFile, 11 , 1 )='Y'
  lnVal3 = val(substr(lcStrOfFile, 13 , 10 ))
  insert into (Выход) (NAME, FLAG, QTY) VALUES (lcVal1 ,llVal2 ,lnVal3)
next
use
set memowidth to lnOldMemoWidth
select (lnOldArea)
________
Не дадим распространиться заразе политкорректности!
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34544768
homik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю вариант с использованием чтения файла на низком уровне, т.е. FOPEN(), FREAD().
Если не устраивает, то открываешь исходный фал например в текстовом редакторе Norton Commander или FAR-Manager. Столбцы из которых необходимо записать в одно поле отделяешь например табулятором (Вставка пустых столбцов).
Затем File-Import-Text... где по запросу указываешь разделитель TAB.

А вообще, не плохо было-бы ставить вопрос конкретнее.
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34546308
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ионас
Вся эта таблица в текстовом файле должна оказаться в таблице *.dbo, т.е. в SQL Server 2000.
Насколько я знаю, SQL Server 2000 хранит данный в файлах MDF и лог в файле LDF. Откуда Вы взяли расширение dbo? Что это за тип файлов?

Если речь идет о таблицах внутри базы данных MS SQL сервера, то указание dbo в их именах - это не окончание, а префикс и означает владельца таблицы. Сокращение от "Data Base Owner". Т.е. владелец таблицы, по умолчанию, совпадает с владельцем базы данных.

Имена таблиц в MS SQL сервере, по умолчанию, пишутся так:

Имя_Базы_Данных.Владелец.Имя_Таблицы

MyBase.dbo.MyTable

Поэтому, Вас никто и не может понять. Написание *.dbo не соответствует ни одному из известных форматов. Это "опечатка" или Вы имели в виду, что-то особенное? Никому не известное?

ИонасЯ создал таблицу в SQL Server 2000 со следующей структурой:
Char 15
Int
Int
Float 9.6
CHar 1
Int
Int
Float 9.6
Char 1
Floiat 9.6
Int
Потом в VIsual FoxPro пробовал командами COPY TO и Append From
Ничего у меня не вышло хорошего.
Команда COPY TO копирует данных из таблицы FoxPro. Поскольку у Вас текстовый файл, то данная команда бессмыслена.

Команда APPEND FROM используется для таблиц FoxPro. Естесственно, FoxPro в принципе ничего не знает о таблицах MS SQL. Необходимо предпринять ряд специальных мер, чтобы FoxPro "увидел" таблицы MS SQL. Ну, например, создать Remote View.

С точки зрения FoxPro Remote View - это обычная таблица. Соответственно, в нее можно добавлять данные как и в обычные таблицы FoxPro. Если настроить режим обновления данных (закладка Update Criteria в дизайнере Remote View), то изменения, вносимые на стороне FoxPro в Remote View будут автоматически переносится в таблицу MS SQL, на основании которой этот Remote View был построен.

Чтобы воспользоваться космандой APPEND FROM надо вернуться к тому, с чего все началось. К структуре данных.

Команда APPEND FROM предполагает, что файл из которого будут импортированны данные имеет определенную структуру. Какую именно, определяется параметром, указывающим тип файла.

Судя по предложенному фрагменту, это текстовый файл формата SDF. Это такой формат, где под каждое "поле" отводится фиксированное количество символов. Чтобы корректно импортировать данные из этого файла командой APPEND FROM файл, в который будет осуществляться импорт должен иметь аналогичную структуру в смысле длины полей.

Поэтому, необходим такой код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Create Cursor test (f1 C( 15 ), ;
		f2 N( 3 ), ;
		f3 N( 3 ), ;
		f4 N( 10 , 6 ), ;
		f5 C( 2 ), ;
		f6 N( 4 ), ;
		f7 N( 3 ), ;
		f8 N( 10 , 6 ), ;
		f9 C( 2 ), ;
		f10 N( 13 , 6 ), ;
		f11 N( 10 ))
Append From  1 .asc type SDF
Browse nowait

Теперь, когда данные импортированы из текстового файла в файл DBF можно использовать команды по работе с таблицами в FoxPro для дальнейшей закачки в тот же Remote View.

Если же алгоритм разбора текстового файла более сложный, то используют другие способы чтения. Например, уже предложенные FOPEN()+FREAD()/FGETS(). Но есть и другие варианты.
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34546382
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прогоните его к глори )
скл - сервер сам не плохо читать умеет
зачем же тогда вгонять все в фокс?
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34546884
Ионас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leafпрогоните его к глори )
Хто такая ? Почему не знаю ?
leaf скл - сервер сам не плохо читать умеет
зачем же тогда вгонять все в фокс?
Моя задача не просто тупо вогнать в сиквел, а много всяких разнообразных вещейц с данными проделывать. Поэтому т.к. Fox прекрасно дружит с сиквелом я его использую.
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34546891
Ионас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сегодня отработал вариант Excel - Fox. Все прекрасно добавилось с помощью команды:
Append from Книга1 Type xls Fields asd, zxc, qwe
Попробую добавить напрямую данные из текстового файла с расширением *.asc (ASCII - файл), но надо будет понять как правильно указать тип файла, т.к. на asc реагирует плохо, дает ошибку.
Допустим разберусь. Смущает следующее, что в текстовом файле придется дописывать названия полей.
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34547388
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
глори админ из прибалтики
на форуме по скл-серверу
...
Рейтинг: 0 / 0
импорт базы данных в офрмате ASCII
    #34549788
Ионас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leafглори админ из прибалтики
на форуме по скл-серверу
Пнятна. И на кой ляд мне ента бабенка ?
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / импорт базы данных в офрмате ASCII
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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