[perl] Zeichencodierung // exec() | Anfängerproblem


FlockY

Mitglied
Hallo ich bins wieder,

ich habe eine .dat Liste in folgendem format

Nummer;passwort
Nummer;passwort

Sobald ich diese daten manuell in eine neue datei hier am rechner schreibe funktioniert alles.

diese Liste wird aber aber aus Excel importiert über simples copy & paste in nem txt file.


Sobald man diese Liste aber aus dem ursprünglichen Excel nimmt kommt mein Programm damit nichtmehr klar und fügt teilweise Fragezeichen in den Text hinzu.

Ich habe eine Möglichkeit gefunden die Zeichecodierung wieder richtig hin zu bekommen via

Strings dateiname > dateiname_neu

Das möchte ich wenn möglich über exec('strings dateiname > dateiname_neu') aufrufen.

Das klappt aber nicht ganz richtig. Er erstellt mir zwar die neue datei kopiert aber die Daten von der alten nicht rein. Das heißt die neue Datei ist leer.

Wenn ich das Command händisch ausführe klappt alles einwandfrei.


Ich bedanke mich schonmal im voraus für alle Ratschläge.

Viele Grüße
Flocky
 

deepthroat

Erfahrenes Mitglied
Hi.

Dir ist bewußt, dass exec dein Perl Skript sofort beendet? Wenn nicht, nimm system().

Aber warum willst du unbedingt eine neue Datei erstellen, nimm lieber den Backtick Operator:
Perl:
my $conten = `strings dateiname`;
Gruß

PS: Generell solltest du evtl. überlegen wie du die Datei nativ lesen kannst und nicht so eine unausgegorene Umgehungslösung wählen mußt. Sprich: finde raus welches Encoding es ist und lies es entsprechend ein und wandle bei der Ausgabe entsprechend um (wenn nötig).