Jer: Problem mit Array!!

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

  1. 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

    1. 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

      1. 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

        --

        Hat sich erledigt!!! Danke!

      2. 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