Вопрос : Значение читать/сочинительства фикчированное располагает PERL n архивов

Hi,
I am пытаясь прочитать архив который имеет 6 двоеточий. Показано на данные вверх на точно на положениях same
colon. Iий судимое прочитать вверх на искати и сказать но не нашло хорошее explaination.
Johanne1

here 3 линии входного сигнала file.
743 Hafslund Telekom Nettjene 02011 20090616130000 20100208152959 связей ASA 02011 моркови I
704 20100208153000 99991231000000 I
729 TDC КАК - 729 02090 20080609083000 99991231000000 немногими двоеточиями I

The сперва будут пустые пространства и могут быть приняты out.
There 6 двоеточий но только заботят о первых 5 двоеточиях, т.е. последнее двоеточие можно принять выход out.
Desired имеет 2 требования;
1. отделяет двоеточия некоторым видом двоеточия 5 примера semi-colon.
2. разграничителя будет дата если оно начинает 9999 после этого заменяет ть с ничего, то если дата не делает start
with 9999 после этого не заменяет ть ое ть it.

desired:, то

743; Hafslund Telekom Nettjene; 02011; 20090616130000; 20100208152959;
704; Связи ASA моркови; 02011; 20100208153000; ;
729; TDC КАК -729; 02090; 20080609083000; ;


I написало сценарий к decipher между словами и письмами и космосами но оно делает not
work из-за двоеточием 2 будет имя может включить сценарий number.
The ниже дает правый ответ для первых 2 линий но линией 3 будет split ouput incorrectly.

incorrect на линия 3:
729; TDC КАК -; 729; 02090; 20080609083000; ;

The во-вторых 729 будет ot части, котор name.

It было предложено к мне используемое фикчированное положение в виду того что каждая часть данных всегда будет казаться in
the таким же colon.
Start подсчитывая от 0.
example: двоеточие 1 начинает в 7th стартах двоеточия 2 position
в 12th стартах двоеточия 3 position
в 36-ых стартах двоеточия 4 position
в 48th стартах двоеточия 5 position
в 67th position.

Is там любую дорогу, котор я могу легк хранить содержание каждого colonn using двоеточие position.

Here буду моим сценарием основанным на космосах, десятичные дроби и слова но никогда не будут работать из-за
colon 2 содержат название которое имеет слова и могли иметь number.

$infile = «input.txt»;
$outfile = «output.txt»;
open (OUTF, «>$outfile») || умрите «не смогите раскрыть $outfile»;
open (INF, «<$infile») || умрите «не смогите раскрыть $infile»;

while () {
$tmp = $_; chomp
($tmp);
$tmp=~ s/^ \ s+//; @arr
= разделило (/\ s+/, $tmp);
$temp = "";
для ($i = 0; <= $#arr $i;
$i++) {
если (/=~ $arr [$i] \ d+/), то {
если (, то (&& eq $i ($#arr - 1)) ($arr [$i] =~/^9999/))   {$temp = $temp. » \; «;}

еще {$temp = $temp.$arr [$i]. » \; «;}
elsif

} ("" ne $arr [$i+1]) {
если (/=~ $arr [$i+1] \ d+/), то {$temp = $temp.$arr [$i]. » \; «;}
другое {$temp = $temp.$arr [$i].» «;}печать OUTF «$temp \ n»


}};
close
} (INF);
close (OUTF);

Thanks заранее для вашей части advice.




the каверзной будет вторым двоеточием будет имя может иметь письма и нумерует and
have нескольк words
class=

Ответ : Значение читать/сочинительства фикчированное располагает PERL n архивов

Вы можете использовать разделять на уровне чарса & соединять для того чтобы сделать выходку… Как раз вспомните что элементы соединенные от блока извлечутся поэтому перенесите ваш «указатель» соответственно. Test.txt смотрит как это в мой случай:
pat1 картина pattern2
dfadafda pappape xxd1
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
#! /bin/perl
#
используйте только;
используйте предупреждения;


раскройте IH, «;
закройте IH;

foreach мое $line (@data) {
 мое @spl = разделило (/, $line);
 мо @col1 = @spl соединения, 0.4; #positions 2-9;
 мо @col2 = @spl соединения, 1.7; #positions 2-9;
  
 печать @col1; 
 «печати \ n»;
 печать @col2; 
 «печати \ n»;
}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us