Ich hab mir ein Perl Skript geschrieben, welches mir als erstes eine
Textdatei zeilenweise einliest.
Anschließend sollte er jede Zeile überprüfen.
Überprüfung:
Was zwischen Leerzeichen ist, speichert er im Array druff ab.
Ich hab das Programm free "wegen dem Arbeitsspeicher" in die Datei
test.txt umgeleitet "free > test.txt"
Jedoch funktioniert das Programm nicht optimal...ich bekomme keine Werte
zwischen den Leerzeichen angezeigt.
Vielleicht weis jemand von Euch wo der Fehler liegt.
Ich hab $i = 1; genommen, da ich es erstmal bei der ersten Zeile
ausprobieren wollte.
Cu Andy
Hier der code:
#!/usr/bin/perl
@druff = ();
my $puffer;
$wert = 0;
$prell_leer = 0;
$prell_zeichen = 0;
@text = ();
$datei = "test.txt";
open (in,"<$datei") || die $!;
while (<in>)
{
$a = $a + 1 ;
print $_;
$text[$a] = $_;
}
close in;
$i = 1;
for($ii=0; $ii < length($text[$i]) ; $ii++)
{
if (substr($text[$i],$ii,1) eq " ")
{
}
else
{
$puffer = $puffer + substr($text[$i],$ii,1) ;
$zwischenwert = $ii +1;
if (substr($text[$i],$zwischenwert,1) eq " ")
{
$weiter = $weiter + 1;
$druff[$weiter] = $puffer;
$puffer = "";
}
}
}
for($ii=0; $ii < $weiter ; $ii++)
{
print $druff[$ii];
print "\n";
}
und die Ausgabe, was dabei heraus kommt.
Wiegesagt verwurschtele ich gerade nur die erste Zeile, daher $i = 1;
root@iconnect-armel-squeeze:/home/andreas# ./uff.pl
total used free shared buffers
cached
Mem: 253544 245324 8220 0 3672
190172
-/+ buffers/cache: 51480 202064
Swap: 195580 244 195336
total used free shared buffers
cached
0
0
0
0
Ich versteh nicht was du da versuchst. Dein Code ist auch recht übel,
vermutlich geht das mit einzwei regex sehr elegant, hab aber nicht
kapiert was du erreixhen möchtest...
andy schrieb:> for($ii=1; $ii <= length($text[$i]) ; $ii++)
sicher <=
ich glaub Perl beginnt ab 0
das ganze Programm sollte ein Einzeiler sein.
Dein Paradigma passt eher zu Pascal oder C.
noch mal danke an Euch. ich wusste nicht, das ich use strict;
includieren musste...scheint eine Headerdatei zu sein....des weiteren
musste ich jede Variabele, String u. Array my davor schreiben.