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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как разобрать данные из текстового файла 
:(
    Опции темы
denis1706
Дата 8.12.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



подскажите плиз как разобрать текстовый фаил 
((//090111:
(1011):0:0::::
(1012):1894,216:1894,216::::
(1013):0:0::::
(1015):1276,574:1276,574::::
(1021):0:0::::
(1022):1814,871:1814,871::::
(1023):0:0::::
(1025):1517,937:1517,937::::
(1031):,002:,002::::
(1032):961,424:961,424::::
(1033):0:0::::
(1035):627,125:627,125::::
(1041):,007:,007::::
(1042):1660,044:1660,044::::
(1043):0:0::::
(1045):801,8:801,8::::
(1051):0:0::::
(1052):1425,055:1425,055::::
(1053):0:0::::
(1055):876,002:876,002::::
(1061):0:0::::
(1062):1792,627:1792,627::::
(1063):0:0::::
так чтобы он поместился в  двухмерный масив .не строкама и значениями?????
PM MAIL   Вверх
amg
Дата 8.12.2009, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



Цитата(denis1706 @  8.12.2009,  13:07 Найти цитируемый пост)
подскажите плиз как разобрать текстовый фаил 
так чтобы он поместился в  двухмерный масив .не строкама и значениями?????
Непонятно, что нужно сделать. Объясните, пожалуйста, еще раз. 

PM MAIL   Вверх
ginnie
Дата 8.12.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

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



Так не подойдет?
Код

#!/usr/bin/perl

use strict;
use warnings;

use Text::CSV;

my $csv = Text::CSV->new ( { sep_char => ':' } ) or die "Cannot use CSV: ".Text::CSV->error_diag();

open my $fh, 'source.csv' or die "test.csv: $!";
my @rows;
while (my $row = $csv->getline($fh)) {
    push @rows, $row;
}
$csv->eof or $csv->error_diag();
close $fh;



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
denis1706
Дата 8.12.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



мне нужно взять этти данные неввиде строк. а ввиде чисел.и значениями втянуть в БД!!!!
use strict;
use warnings;

use Text::CSV;
а эти котструкции в каких библиотеках????

Добавлено через 4 минуты и 15 секунд
а если можна поставь плиз комены к скрипту
Цитата
  
#!/usr/bin/perl

use strict;
use warnings;

use Text::CSV;

my $csv = Text::CSV->new ( { sep_char => ':' } ) or die "Cannot use CSV: ".Text::CSV->error_diag();

open my $fh, 'source.csv' or die "test.csv: $!";
my @rows;
while (my $row = $csv->getline($fh)) {
    push @rows, $row;
}
$csv->eof or $csv->error_diag();
close $fh;


PM MAIL   Вверх
denis1706
Дата 8.12.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



привести в массиве к виду


дата                      №обьекта                            значение 1                значение 2
 
090111                  1011                                           0                              0
  
090111                   1012                                       1894,216                   1894,216




подскажите как привести к этому????а потом мне надо вызвать процедурк в БД и передать её аргумены в цикле.аргумент 09011 . аргумент2 1011.аргумент3 0. аргумент4 0.........!!!))))))
PM MAIL   Вверх
amg
Дата 8.12.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



О! Теперь понятно стало.
Код
open F, '<', "file1.txt" or die "Can't open : $!\n";
my @array;
my $date = '';
while (<F>) {
  chomp;
  if (m/^\(\(\/\/(\d+):/) {
    $date = $1; 
    next;
  }
  s/^\((\d+)\):/$1:/ or next;
  push @array, [$date, split /:/];
}
close F;

foreach (@array) {
  print "@$_\n";
}

PM MAIL   Вверх
denis1706
Дата 8.12.2009, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



amg, плиз поставь коментарии к коду !!!а то ход скрипта немогу проследить!!!

PM MAIL   Вверх
denis1706
Дата 8.12.2009, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 amg,подскажи плиз как организовати цикл по массису чтобы выбирать из массива от  $array[0][0]
 до $array[0][3] c передачей оргументов в процедуру в ORACLE 

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


 




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


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

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