Seite 1 von 1

ot4xb und cUTF8ToAnsi() [erledigt]

Verfasst: Do, 10. Nov 2016 15:38
von peternmb
Hallo,

ich möchte eine kleine 5-zeilige Textdatei die mit einem Android-Gerät erstellt wurde unter xbase in einem MLE anzeigen, bearbeiten und wieder speichern.

Die Datei hole bzw. speichere ich mit der FTP-Klasse von Phil Ide auf einem Webserver, das klappt problemlos.
Ich schaffe es allerdings nicht, die Datei so zu konvertieren, dass die Zeilenvorschübe erkannt werden, der Text geht in einem durch.

Ich wollte dazu ot4xb nutzen

Code: Alles auswählen

cTexta := cUTF8ToAnsi(MemoRead(datei))
mle:setData()
Was mache ich denn da falsch?
.

Re: ot4xb und cUTF8ToAnsi()

Verfasst: Do, 10. Nov 2016 16:15
von Martin Altmann
Android ist Linux. Somit dürfte ein Zeilenwechsel kein chr(13) + chr(10) sein, sondern nur die 13 (glaube ich)!

Viele Grüße,
Martin

Re: ot4xb und cUTF8ToAnsi()

Verfasst: Do, 10. Nov 2016 16:54
von brandelh
Erklärung stimmt, aber Zeichen chr(13) ist beim Mac, Unix / Linux haben chr(10).

Für das zeilenweise Einlesen von Text-Dateien gibt es meine Klasse (die kümmert sich um sowas):

:arrow: http://www.xbaseforum.de/viewtopic.php?f=16&t=7961

bei einfachen Sachen mit strTran() die chr(10) gegen chr(13)+chr(10) tauschen.

Re: ot4xb und cUTF8ToAnsi()

Verfasst: Do, 10. Nov 2016 19:20
von Martin Altmann
Oder so rum 8)

Re: ot4xb und cUTF8ToAnsi()

Verfasst: Fr, 11. Nov 2016 16:44
von peternmb
brandelh hat geschrieben: Für das zeilenweise Einlesen von Text-Dateien gibt es meine Klasse (die kümmert sich um sowas):
Ich habe deine Klasse jetzt eingebaut, klappt prima.
Was ich aber nicht hinbekomme:
1.) in einer Zeile steht eine Mailadresse, die möchte ich noch zusätzlich auslesen.
2.) ich möchte wissen, wie oft eine bestimmt Zeile vorkommt

So klappt es nicht:

Code: Alles auswählen

oTR := HBTextReader(datei)
do while ! oTR:EOF()
   if Rat("@",oTR:GetLine()) > 0
      mail=cUtf8ToOem(oTR:GetLine())
   elseif cUtf8ToOem(oTR:GetLine()) = "***frei***"
      lizenz++
   endif 
enddo

Re: ot4xb und cUTF8ToAnsi()

Verfasst: Fr, 11. Nov 2016 20:12
von AUGE_OHR
peternmb hat geschrieben:1.) in einer Zeile steht eine Mailadresse, die möchte ich noch zusätzlich auslesen.
2.) ich möchte wissen, wie oft eine bestimmt Zeile vorkommt

So klappt es nicht:
versuche mal das

Code: Alles auswählen

oTR := HBTextReader(datei)
do while ! oTR:EOF()
   cLine := oTR:GetLine()
   if Rat("@",cLine) > 0
      mail=cUtf8ToOem(cLine)
   elseif cUtf8ToOem(cLine) = "***frei***"
      lizenz++
   endif 
enddo

Re: ot4xb und cUTF8ToAnsi()

Verfasst: Fr, 11. Nov 2016 20:17
von brandelh
genau getline() liest die Zeile ein und geht zur nächsten. Jimmys Funktion müsste gehen.

Re: ot4xb und cUTF8ToAnsi()

Verfasst: Sa, 12. Nov 2016 11:11
von peternmb
Vielen Dank, jetzt funktioniert alles :blob8: