Avatar billede shale Nybegynder
14. maj 2003 - 15:50 Der er 2 kommentarer og
1 løsning

Modificering af indholder i en liste

Halløjsa håber at i kan hjælpe mig med mit lille problem.

Jeg har taget indholdet af en fil og puttet ind i en liste. Alle linjer ser således ud.

1    ,C1,4000229  ,                                 
1    ,R1,5011191  ,                                 
1    ,MP1,3304179  ,                                 
1    ,MP2,3304179  ,                                 
1    ,C2,4000228  ,                                 

Jeg vil så have konverteret selve den streng der til noget andet.

Det eneste jeg skal bruge fra ovenstående streng er tallet og så det der står foran (C1 fx)

Jeg vil så have dem skrevet ud i en fil der har dette format, dog vil jeg meget gerne have listen sorteret efter nummeret.
Alle andre tal og tegn er faste parametre.

Dvs outputtet i filen skulle gerne se sådan ud:

MP1  A 3304179  0    0 P      0    0    0
MP2  A 3304179  0    0 P      0    0    0
C2    A 4000228  0    0 P      0    0    0
C3    A 4000228  0    0 P      0    0    0
C1    A 4000229  0    0 P      0    0    0
R1    A 5011191  0    0 P      0    0    0


Er der nogen der har en ide til hvordan dette problem kan løses med perl? Jeg har siddet og brudt mit hoved lidt med det, men kan ikke helt hitte ud af det.
Avatar billede ranko Nybegynder
14. maj 2003 - 17:16 #1
Nu ved jeg jo ikke hvilke antagelser der er på tal og det foran men noget i denne retning kunne måske gøre det. Jongler selv med afstande i sprint

## indhold er allerede i liste
## @lines=split(/\n/, $filensindhold);
$i=0;
foreach (@lines) {
  @values=split(/\s*,\s*/, $_);
  $tabel{sprintf("%-10d%s%d", $values[2], $values[1], $i)}=sprintf("%3s  A%8s  0    0 P      0    0    0\n", $values[1], $values[2]);
  $i++;
}
foreach (sort keys %tabel) {
  print $tabel{$_};
}
Avatar billede shale Nybegynder
15. maj 2003 - 12:46 #2
Ah det virker, du er simpelthen en helt.

Vil du svare så du også kan få dine retmæssige point? :D
Avatar billede ranko Nybegynder
15. maj 2003 - 13:09 #3
ok :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester