Pergunta : O valor fixo da leitura/escrita posiciona o Perl das limas n

Olá!,
I am que tenta ler uma lima que tenha 6 dois pontos. Os dados aparecerão em exatamente nas posições do same
colon. Eu tentei ler acima na busca e dizer mas não encontrei que um bom explaination.
Johanne1

here é 3 linhas da entrada file.
743 Hafslund Telekom Nettjene 02011 20090616130000 20100208152959 comunicações ASA 02011 da cenoura de I
704 20100208153000 99991231000000 I
729 TDC COMO - 729 02090 20080609083000 99991231000000 dois pontos primeiros de I

The são espaços em branco e podem ser tomados out.
There são 6 dois pontos mas importam-se somente com os primeiros 5 dois pontos, isto é os últimos dois pontos podem ser tomados a saída de out.
Desired têm 2 exigências; o
1. separa os dois pontos por algum tipo dos dois pontos 5 do exemplo semi-colon.
2. do delimitador é uma data se começa por 9999 substitui então com o nada se a data não faz o start
with 9999 então não substitui it.

desired output:

743; Hafslund Telekom Nettjene; 02011; 20090616130000; 20100208152959;
704; Comunicações ASA da cenoura; 02011; 20100208153000; ;
729; TDC COMO -729; 02090; 20080609083000; ; o


I escreveu um certificado à decifração entre palavras e letras e espaços mas faz o not
work por causa dos dois pontos 2 que são um nome que possa incluir o certificado de number.
The abaixo dê a resposta apropriada para primeiras 2 linhas mas a linha 3 é ouput rachado de incorrectly.

incorrect para a linha 3:
729; TDC COMO -; 729; 02090; 20080609083000; ; o

The em segundo 729 é ot que da parte o name.

It me foi sugerido a de posição fixa usado desde que cada peça de dados parecerá sempre o in
the o mesmo colon.
Start que conta de 0.
example: os dois pontos 1 começam em ős começos dos dois pontos 2 do position
em 1òs começos dos dois pontos 3 do position
em 36th começos dos dois pontos 4 do position
em 48th começos dos dois pontos 5 do position
em 67th position.

Is lá toda a maneira que eu puder facilmente armazenar os índices de cada colonn using os dois pontos position.

Here sou meu certificado baseado em espaços, os decimais e as palavras mas nunca trabalharão por causa do
colon 2 contêm um título que tenha palavras e puderam ter um number.

$infile = “input.txt”;
$outfile = “output.txt”;
open (OUTF, “>$outfile”) || morrer “não pode abrir $outfile”;
open (INF, “<$infile”) || morrer “não pode abrir $infile”;
do
while () {
$tmp = $_; chomp do
($tmp);
$tmp=~ s/^ \ s+//; @arr do
= separação (/\ s+/, $tmp);
$temp = "";
para ($i = 0; <= $#arr de $i;
de $i++) {
se (/do =~ de $arr [$i] \ d+/) {
se ((eq de $i ($#arr - 1)) && ($arr [$i] =~/^9999/))   {$temp = $temp. ” \; “;}

mais {$temp = $temp.$arr [$i]. ” \; “;}
do elsif do
do
} ("" do ne de $arr [$i+1]) {
se (/do =~ de $arr [$i+1] \ d+/) {$temp = $temp.$arr [$i]. ” \; “;}
outro {$temp = $temp.$arr [$i].” “;}cópia OUTF “$temp \ n” do
do
do
}};
close do
} (INF);
close (OUTF); o

Thanks adiantado para sua peça complicada de advice.




the é os segundos dois pontos que são um nome que possa ter letras e numere o and
have diverso o words
class= do

Resposta : O valor fixo da leitura/escrita posiciona o Perl das limas n

Você pode usar a rachadura em um nível do carvão animal & a emenda para fazer o truque… Apenas recordar que os elementos emendados da disposição estão removidos assim que desloc seu “ponteiro” conformemente. Test.txt olha como este em meu caso:
pat1 teste padrão pattern2
dfadafda do pappape xxd1
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
#! /bin/perl
#
usar estrito;
usar avisos;


abrir IH, “;
fechar IH;

foreach meu $line (@data) {
 meus @spl = separação (/, $line);
 meu @col1 = @spl da tala, 0.4; #positions 2-9;
 meu @col2 = @spl da tala, 1.7; #positions 2-9;
  
 cópia @col1; 
 “da cópia \ n”;
 cópia @col2; 
 “da cópia \ n”;
}
Outras soluções  
 
programming4us programming4us