07. januar 2006 - 23:58
Der er
16 kommentarer og 1 løsning
Hente og skrive en liste ud fra en txt database
Hei, Jeg har en database balabala.txt med: 1,tele.dk,TY 2,figo.fy,CZ 3,dere.be,TH 4,tele.dk,ZX Hvordan kan jeg skrive ud en liste med ale 'tele.dk'? dvs.: 1 TY 4 ZX Er det noen som kan hjelpe lidt her? MVH Terra
Annonceindlæg fra Barco
08. januar 2006 - 09:26
#1
Et bud: open(DB, "<dinFil.txt") || die("Kunne ikke åbne filen."); while (<DB>) { chomp; @lineParts = split(/,/, $_); printf "%s %s\n", $lineParts[0], $lineParts[2]; } close(DB);
16. januar 2006 - 14:53
#2
Har du fået kigget på det?
17. januar 2006 - 23:49
#3
Hei nielle! Er tilbage fra en lag reise ... Den give mig en hell liste, dvs. alle $lineParts[0] og $lineParts[2] men du er inne på noe her:) Hmm..., hvordan kan jeg liste bare 'tele.dk' her?
18. januar 2006 - 00:02
#4
Hvad er kriteriet for lige at få fat på den ud af alle de andre? Er det fordi at den er den 1.linje, eller måske fordi at den er den eneste .dk i blandt de ander? Eller hvad?
18. januar 2006 - 00:08
#5
if ($lineParts[1] eq 'tele.dk'){ printf "%s %s\n", $lineParts[0], $lineParts[2];}
18. januar 2006 - 00:12
#6
He,...he,he, og det var det:) smi et svar nielle
18. januar 2006 - 06:56
#7
Svar :^)
18. januar 2006 - 18:21
#8
nielle -> hm..., hvordan kan jeg lave en ny string istedenfor -> print it as: printf "%s %s\n", $lineParts[0], $lineParts[2];} Jeg skal bruke output i et andet sub_, det er her det stoper opp nu. Any ideas?
18. januar 2006 - 19:18
#9
$nyString = $lineParts[0] . " " . $lineParts[2]; - eller: $nyString = sprintf("%s %s", $lineParts[0], $lineParts[2]);
18. januar 2006 - 19:57
#10
Jeg har prøvd begge, alt jeg får er altid den sidste linje.
18. januar 2006 - 20:04
#11
Hvis du skal have begge to, skal de jo gemmes i et array: open(DB, "<dinFil.txt") || die("Kunne ikke åbne filen."); @arr = (); while (<DB>) { chomp; @lineParts = split(/,/, $_); if ($lineParts[1] eq 'tele.dk') { push(@arr, sprintf("%s %s\n", $lineParts[0], $lineParts[2])); } } close(DB);
18. januar 2006 - 20:17
#12
Nix har prøvd med: $nyString = push(@arr, sprintf("%s %s\n", $lineParts[0], $lineParts[1])); dvs.: open(DB, "<dinFil.txt") || die("Kunne ikke åbne filen."); @arr = (); while (<DB>) { chomp; @lineParts = split(/,/, $_); if ($lineParts[1] eq 'tele.dk') { $nyString = push(@arr, sprintf("%s %s\n", $lineParts[0], $lineParts[1])); } } close(DB); print $nyString; # men jeg får bare et 2 tall
18. januar 2006 - 20:18
#13
$nyString = push(@arr, sprintf("%s %s\n", $lineParts[0], $lineParts[2])); # sku det være
18. januar 2006 - 20:19
#14
print @nyString;
18. januar 2006 - 20:20
#15
Ikke: $nyString = push(@arr, sprintf("%s %s\n", $lineParts[0], $lineParts[1])); - men: push(@arr, sprintf("%s %s\n", $lineParts[0], $lineParts[1]));
18. januar 2006 - 20:20
#16
.. og så ligger resultatet i arrayet @arr
18. januar 2006 - 20:25
#17
Tusind tak for hjelpen, ser lys i det andet ende nu :) Ha en god aften. MVH Terra
Kurser inden for grundlæggende programmering