Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Записать в dbf из txt 
:(
    Опции темы
White_Eagle
Дата 17.2.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 28.3.2007

Репутация: нет
Всего: нет



Здравствуйте, уважаемые гуру перла. Помогите мне разобраться, как из текстового файла записать данные в dbf. 
Текстовый файл вот такого вида:
Код

111111    5000    
10   6720300,00    672300,00    672300,00
222222    5000    
10   1472400,00    1472400,00    1472400,00
23   2350000,00    235000,00    235000,00
15   3231200,00    3231200,00    3231200,00
333333    5000    
20   4032500,00    4963200,00    6053700,00
444444    5000    
55   5451000,00    87400,00         1856300,00
23   2350000,00    235000,00    235000,00



Количество строк может отличаться от вышеприведенного примера. 

А в dbf эти данные должны быть в таком виде:
Код

 Field1    Field1     Field1     Field1            Field1               Field1
-------------------------------------------------------------------------------------- 
111111    5000    10   6720300,00    672300,00    672300,00
222222    5000    10   1472400,00    1472400,00    1472400,00
222222    5000    23   2350000,00    235000,00    235000,00
222222    5000    15   3231200,00    3231200,00    3231200,00
333333    5000    20   4032500,00    4963200,00    6053700,00
444444    5000    55   5451000,00    87400,00         1856300,00
444444    5000    23   2350000,00    235000,00    235000,00


Т.е. как видно, там где два числа в строке, записываются соотвественно в два поля со значениями что идут в следующих строках, пока не встретятся другие два числа.
Помогите.
Интересует не сам процесс записи в dbf, а как "прокрутить" данные, подготовить их к записи.
Заранее спасибо!

Это сообщение отредактировал(а) White_Eagle - 17.2.2010, 16:53
PM MAIL   Вверх
vadiml
Дата 17.2.2010, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 27.7.2007

Репутация: 5
Всего: 7



Может проще использовать уже готовое?
http://search.cpan.org/~pratp/Xbase-1.07/Xbase.pm
или 
http://search.cpan.org/~janpaz/DBD-XBase-0...ib/DBD/XBase.pm
который работает поверх XBase

Добавлено через 5 минут и 21 секунду
а текст разбирается простой регуляркой:
while (<>) {
    if ( /^(\d+)\s(\d+)$/ ) {
         # запоминаем начало
    }
    else {
         # пишем в базу
   }
}
PM MAIL Jabber   Вверх
White_Eagle
Дата 18.2.2010, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 28.3.2007

Репутация: нет
Всего: нет



Спасибо vadiml. Получилось  smile 
PM MAIL   Вверх
Ress
Дата 13.6.2012, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.6.2012

Репутация: нет
Всего: нет



Подскажите а что надо сделать с датой чтоб записать как дату в dbf файл?
имею такой код

Код

#!/usr/bin/perl -w

unlink("dbf.dbf");


my $datenow2 = "12.02.2011" ;

use XBase;
my $newtable = XBase->create("name" => "dbf.dbf", 
  "field_names" => [ "NOM_DOK","DATA_DOK"],
  "field_types" => [ "C",      "D"],
  "field_lengths" => [ "10",     "8"],
  "field_decimals" =>[ undef,    undef]);

$newtable->set_record(0,"878",$datenow2);

$newtable->close(); 



В dbf файле дата должна быть типом=дата длинной=8 символов.
PM MAIL   Вверх
Ress
Дата 13.6.2012, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.6.2012

Репутация: нет
Всего: нет



Код

$datenow2 = "190121" ;# год мес число
 Оказывается надо писать! теперь осталось дело за малым преобразовать к такому типу.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.