utf8-codierte Textdateien öffnen

Probleme, Fragen und Lösungen

utf8-codierte Textdateien öffnen

Beitragvon 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
manfred
Foriker
 
Beiträge: 6
Registriert: Mi 2. Dez 2009, 22:45

Re: utf8-codierte Textdateien öffnen

Beitragvon 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!
tux_
Site Admin
 
Beiträge: 941
Registriert: Di 11. Nov 2008, 20:05

Re: utf8-codierte Textdateien öffnen

Beitragvon 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
manfred
Foriker
 
Beiträge: 6
Registriert: Mi 2. Dez 2009, 22:45


Zurück zu Gambas in Verbindung mit Linux

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste