webForumDet fria alternativet

Läsa från fil

1 svar · 333 visningar · startad av nordan

nordanMedlem sedan juni 2000949 inlägg
#1

Tjena hej!
Om man har en text fil med olika värden typ så här
Katt:::2:::
Hund:::14:::
Hur gör man då för att sätta in namn så att man kan skriva ut dom en efter en.
$värde1 och då skriver man ut katt
när man sedan skriver
$värde4 skall man skriva ut 14
jag har gjort så här och jag får bara ut
första raden i texten som är katt och 2

open(FIL,"rost.txt");
foreach $rad (<FIL> ){
@upp= split(/:::/,$rad);
}
print "$upp[0] $upp[1] $upp[2] $upp[3]";

När jag har skrivit detta vill jag att det skall stå
Katt 2 Hund 14
Någon som vet om det går? :l :x

demo
#2

Hej!

Prova med att sätta printsatsen innanför "}" klamrarna. Som det är nu skriver väl programmet endast ut det sista värdet?

När jag hämtar värden från liknande fil lägger jag dem i vektorer. Därefter så skriver jag ut vektorerna vid lämpligt tillfälle.

Nu kan man säkert göra en flerdimensionerad vektor ;) , vilket är att föredra. Men hoppas ändå att koden kan vara till hjälp.

flock(FILE,$lock);
open (TEXT,"$boktext");
while ($rad=<TEXT> ){
$k++;
$rad=~/(.*)::(.*)::(.*)::(.*)::(.*)::(.*)::(.*)::(.*)/;

$INFO1[$k]=$1;
$INFO2[$k]=$2;
$INFO3[$k]=$3;
$INFO4[$k]=$4;
$INFO5[$k]=$5;
$INFO6[$k]=$6;
$INFO7[$k]=$7;
$INFO8[$k]=$8;
}
close (TEXT);
flock(FILE,$unlock);
}

Mvh,
Demo

[Redigerat av demo den 05 jul 2000]

257 ms totalt · 3 externa anrop · v20260731065814-full.37765c92
130 ms — hämta forumlista (db)
125 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)