utf8-codierte Textdateien öffnen

Probleme, Fragen und Lösungen
Antworten
manfred
Foriker
Beiträge: 6
Registriert: Mi 2. Dez 2009, 22:45
Kontaktdaten:

utf8-codierte Textdateien öffnen

Beitrag von manfred » Di 26. Feb 2013, 23:07

Hallo zusammen,

ich arbeite mit Gambas 2.23 unter SuSE 11.4 und habe folgendes Problem:
Ich will ein Gambas-Konsolen-Script schreiben, welches eine Textdatei öffnet, diese zeilenweise liest, und Zeilen, die einen bestimmten Teilstring enthalten, ausgeben. Also eigentlich nix Wildes. Das mache ich mit folgendem Programm:

Code: Alles auswählen

PUBLIC SUB Teste_Datei_lesen()
  DIM filename AS String
  DIM hFile AS File            ' Filehandle
  DIM sRes AS String           ' Einzelne gelesene Zeile

  PRINT "Dateiname: ";
  INPUT filename

  TRY hFile = OPEN filename FOR INPUT
  IF ERROR THEN
    PRINT "Datei " & filename & " öffnen zum Lesen misslungen"
  ELSE
    PRINT "Datei " & filename & " öffnen zum Lesen erfolgreich"
    ... ' (hier die eigentliche Verarbeitung)
    CLOSE hFile
  ENDIF
END
Nun teste ich das Programm mit zwei Textdateien AAA.txt und BBB.class. AAA.txt habe ich mit dem vi (oder irgendeinem anderen Editor) erzeugt, BB.class ist ein Gambas-Class-File. Beide sind ja nach meinem Verständnis stinknormale Textdateien. Tests in der Gambas-IDE (also mit F5 gestartet) sind auch in beiden Fällen erfolgreich - Programm tut!

Kompiliere ich das Programm aber ("Projekt" -> "Erzeugen" -> "Ausführbare Datei") und teste das Ganze dann auf der Konsolen-Ebene (bash), erhalte ich
- bei der mit Editor erzeugten Datei AAA.txt das gewünschte Ergebnis (Prog tut!),
- bei dem Gambas-Class-File BBB.class aber die Meldung:

Code: Alles auswählen

Datei BBB.class öffnen zum Lesen misslungen
(also die Fehlermeldung aus meinem Prog).

Hääähh ?

Der einzige Unterschied zwischen den beiden Dateien zeigt sich mir beim bash-Befehl file:

Code: Alles auswählen

> file AAA.txt
AAA.txt: ASCII text

> file BBB.class
BBB.class: UTF-8 Unicode text
Kennt jemand das Problem? Und wie geht man damit um?

Danke schon mal, und beste Grüße in die Gambas-Gemeinde!
Manfred
In a World without Walls and Fences we need no Windows or Gates

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: utf8-codierte Textdateien öffnen

Beitrag von tux_ » Mi 27. Feb 2013, 12:19

Hi,

wenn du ein ausfuehrbares Gambas-Archiv (.gambas) erstellst, dann werden deine Quelltexte kompiliert und deine _Daten_, d.h. alle Nicht-Quelltexte, in das Archiv uebertragen, damit du auf sie zugreifen kannst.

Ich kann mir vorstellen, dass du an dein Programm den String "BBB.class" uebergeben hast. Dieser Pfad wird von Gambas als relativ zum ausfuehrbaren Archiv interpretiert und da BBB.class ein Quelltext ist, ist es dort schon nicht mehr enthalten und du bekommst obige Fehlermeldung.

Versuch, wenn du das Programm im Projektverzeichnis ausfuehrst, z.B. "./BBB.class" zu uebergeben, um die Interpretation des Dateipfades innerhalb des Dateisystems zu erzwingen.
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

manfred
Foriker
Beiträge: 6
Registriert: Mi 2. Dez 2009, 22:45
Kontaktdaten:

Re: utf8-codierte Textdateien öffnen

Beitrag von manfred » Mi 27. Feb 2013, 17:05

Hi tux_,

Das war wohl der richtige Hinweis. Allein mit

Code: Alles auswählen

./BBB.class
geht's zwar nicht, aber wenn ich den vollen Pfad (also komplett ab

Code: Alles auswählen

/home/manfred/ ... /BBB.class
angebe, dann tut's. Macht die Eingabe zwar ein bissel umständlich, aber da kann ich ja noch weitertüfteln.
Also, danke noch mal!
Manfred
In a World without Walls and Fences we need no Windows or Gates

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast