Problem mit Array!!
Jer
- perl
0 Jörk Behrends0 Jer0 Jer0 Peter Squentz
Hallöle!
Habe folgendes Problem:
Ich lese eine Datei aus (Bsp: Name1;Name2;Name3;....) und lese sie in ein Array zu bearbeiten ein. dann schreibe ich die Daten wieder in diese Datei. Jetzt siet die Datei aber so aus: Name1 Name2 Name3 ... Ich benötige aber die ";" und die Leerzeichen müssen raus, damit es so wie oben aussieht.
Ich probier jetzt schon ewigkeiten rum und kriegs nicht hin, im Archiv hab ich bis jetzt auch nix passendes gefunden.
Danke für eure Hilfe
#--
Jer
Hallo Jer,
Ich lese eine Datei aus (Bsp: Name1;Name2;Name3;....) und lese sie in ein Array zu bearbeiten ein. dann schreibe ich die Daten wieder in diese Datei. Jetzt siet die Datei aber so aus: Name1 Name2 Name3 ... Ich benötige aber die ";" und die Leerzeichen müssen raus, damit es so wie oben aussieht.
Genauso, wie Du für das trennen angeben musst, an welchen Zeichen zu trennen ist (split ...), mußt Du dies auch beim zusammenfügen angeben.
Wenn Du ein Array einfach nur mit 'print @myArray;' ausgiebst, erhälst Du in der Regel keine Trennzeichen zwischen den Elementen. Bei 'print "@myArray";' hingegen schon Leerzeichen. Dieses verhalten läßt sich durch die Variablen $, bzw. $" ändern. $, steht für die durch Komma getrennten Werte bei einem print-Befehl 'print $hallo, $welt;'. 'print @myArray;' tritt so auf als wären alle Elemente als solche "Kommaliste" angegeben. $" steht für Arrays innerhalb eines String in doppelten Anführungszeichen. Für näheres siehe 'perldoc perlvar'.
Das eigentlich zusammenfügen erledigt man aber i.d.R. über den Befehl join (perldoc -f join). In Deinem Falle würde "print join(';', @myArray);" weiterhelfen.
Gruß,
Jörk
Hallo Jer,
Ich lese eine Datei aus (Bsp: Name1;Name2;Name3;....) und lese sie in ein Array zu bearbeiten ein. dann schreibe ich die Daten wieder in diese Datei. Jetzt siet die Datei aber so aus: Name1 Name2 Name3 ... Ich benötige aber die ";" und die Leerzeichen müssen raus, damit es so wie oben aussieht.
Genauso, wie Du für das trennen angeben musst, an welchen Zeichen zu trennen ist (split ...), mußt Du dies auch beim zusammenfügen angeben.
Wenn Du ein Array einfach nur mit 'print @myArray;' ausgiebst, erhälst Du in der Regel keine Trennzeichen zwischen den Elementen. Bei 'print "@myArray";' hingegen schon Leerzeichen. Dieses verhalten läßt sich durch die Variablen $, bzw. $" ändern. $, steht für die durch Komma getrennten Werte bei einem print-Befehl 'print $hallo, $welt;'. 'print @myArray;' tritt so auf als wären alle Elemente als solche "Kommaliste" angegeben. $" steht für Arrays innerhalb eines String in doppelten Anführungszeichen. Für näheres siehe 'perldoc perlvar'.
Das eigentlich zusammenfügen erledigt man aber i.d.R. über den Befehl join (perldoc -f join). In Deinem Falle würde "print join(';', @myArray);" weiterhelfen.
Gruß,
Jörk
Hi!
1. Das funzt nicht ganz.
2. Mein Problem ist ja, dass sämtliche Elemente schon in dem Array drinstehen!
Wäre schön wenns dafür ne lsg gibt, die ich auch verstehe aber ich find irgendwie keine!
Merci
--Jens
Hallo Jer,
Ich lese eine Datei aus (Bsp: Name1;Name2;Name3;....) und lese sie in ein Array zu bearbeiten ein. dann schreibe ich die Daten wieder in diese Datei. Jetzt siet die Datei aber so aus: Name1 Name2 Name3 ... Ich benötige aber die ";" und die Leerzeichen müssen raus, damit es so wie oben aussieht.
Genauso, wie Du für das trennen angeben musst, an welchen Zeichen zu trennen ist (split ...), mußt Du dies auch beim zusammenfügen angeben.
Wenn Du ein Array einfach nur mit 'print @myArray;' ausgiebst, erhälst Du in der Regel keine Trennzeichen zwischen den Elementen. Bei 'print "@myArray";' hingegen schon Leerzeichen. Dieses verhalten läßt sich durch die Variablen $, bzw. $" ändern. $, steht für die durch Komma getrennten Werte bei einem print-Befehl 'print $hallo, $welt;'. 'print @myArray;' tritt so auf als wären alle Elemente als solche "Kommaliste" angegeben. $" steht für Arrays innerhalb eines String in doppelten Anführungszeichen. Für näheres siehe 'perldoc perlvar'.
Das eigentlich zusammenfügen erledigt man aber i.d.R. über den Befehl join (perldoc -f join). In Deinem Falle würde "print join(';', @myArray);" weiterhelfen.
Gruß,
JörkHi!
- Das funzt nicht ganz.
- Mein Problem ist ja, dass sämtliche Elemente schon in dem Array drinstehen!
Wäre schön wenns dafür ne lsg gibt, die ich auch verstehe aber ich find irgendwie keine!
Merci
--
Hat sich erledigt!!! Danke!
Wäre schön wenns dafür ne lsg gibt, die ich auch verstehe aber ich find irgendwie keine!
Du solltest die relevanten Code-Stueck veroeffentlichen (einlesen / evt. bearbeiten / schreiben).
Peter