Seite 1 von 9

Verfasst: 24.03.2009 18:26
von milan1612
Nicht noch einer! :lol:

Ich habs mir mal installiert und bin ehrlich gesagt positiv ueberrascht.
Das ganze ist sehr vorbildlich strukturiert und die vielen Beispiele machen es
einem einfach schnell durchzusteigen. Nicht dass ich jetzt OOP in PB verwenden
wuerde (dafuer hab ich C++), aber das ist echt mal lobenswert! :allright:

Verfasst: 24.03.2009 20:48
von Andesdaf
schönes Cover <)

Verfasst: 24.03.2009 21:20
von ts-soft
:allright:

aber noch zu Buggy:

1. UTF-8 Sourcen werden nicht also solche erkannt, somit gibts nen Fehler
(verstehe nicht, wie man noch Plain Text nutzen kann)
2. Die Draw-Beispiele erzeugen alle ein IMA.

Da mußte wohl noch mal ran :wink:

Gruß

Thomas

Verfasst: 24.03.2009 21:35
von ts-soft

Code: Alles auswählen

If ReadFile(0, "bla.txt")
  format = ReadStringFormat(0)
  If format = #PB_Ascii
    format = #PB_Ascii
  Else
    format = #PB_UTF8
  EndIf
  blub.s = ReadString(0, format)
  ....
  CloseFile(0)
EndIf
Das mit draw könnte auch an was anderem liegen, x64 hab ich noch nicht
getestet, da muß ich wohl manuell nachhelfen bevor ich testen kann.

Verfasst: 24.03.2009 22:01
von Little John
ts-soft hat geschrieben:

Code: Alles auswählen

If ReadFile(0, "bla.txt")
  format = ReadStringFormat(0)
  If format = #PB_Ascii
    format = #PB_Ascii
  Else
    format = #PB_UTF8
  EndIf
  blub.s = ReadString(0, format)
  ....
  CloseFile(0)
EndIf
Ich würde auch #PB_Unicode berücksichtigen, z.B. so:

Code: Alles auswählen

; Identify the string encoding used in the file
format = ReadStringFormat(0)
Select format
   Case #PB_Ascii, #PB_UTF8, #PB_Unicode
   Default
      CloseFile(0)
      Debug "Invalid string format"
EndSelect
Gruß, Little John

Verfasst: 24.03.2009 22:09
von ts-soft
> Ich würde auch #PB_Unicode berücksichtigen, z.B. so:
Das würde ich nicht, hat schon seinen Grund! PB-Dateien gibts auch nur
als #PB_ACII oder #PB_UTF8, alles andere ist garnicht möglich.

Das mit Draw hat was mit den AlphaLibs zu tun, die ich teste, ansonsten
Funzt es!

X64 geht auch!

Aber: Da Du alles ohne Pfade einträgst, funktioniert erstmal nur noch ein
PB Version, alle anderen sind anzupassen, das ist nicht so gut, da PB eine
Tools.prefs für alle Installationen benutzt. Das sollte also auf komplette
Pfade geändert werden, wobei dann noch das Problem mit dem Debugger
bleibt!

Verfasst: 24.03.2009 22:17
von Little John
ts-soft hat geschrieben:> Ich würde auch #PB_Unicode berücksichtigen, z.B. so:
Das würde ich nicht, hat schon seinen Grund! PB-Dateien gibts auch nur
als #PB_ACII oder #PB_UTF8, alles andere ist garnicht möglich.
Ooops. Ja stimmt, sorry!

Gruß, Little John

Verfasst: 24.03.2009 22:39
von edel
Sieht bis jetzt sehr gut aus, funktioniert mit x86 und x64.

Danke das du es als OS veroeffentlichst, so hat es wenigstens eine besser
Chance :allright:

Verfasst: 24.03.2009 23:10
von ts-soft
Du liest jetzt zwar den BOM aus, schreibst ihn aber nicht zurück! Das könnte
Datenverlust für Unicode-Strings bedeuten!
Vielleicht hab ich die Stelle auch nur nicht gefunden :wink:

// Nachtrag:
UTF-8 geht verloren:

Code: Alles auswählen

text.s = "უნიკოდი,"
MessageRequester("", text)
Kommt eine Fehlermeldung im Unicode-Modus, solange SimpleOOP aktiviert
ist, ohne gehts.

Verfasst: 25.03.2009 02:41
von ts-soft
Weil Du beim schreiben auch das Format-Flag angeben mußt!

Code: Alles auswählen

WriteStringFormat(0, Format); z.B. #PB_UTF8
WriteStringN(0, "bla", Format)
Obiges Beispiel funktioniert nur, wenn die IDE auf UTF-8 steht und die
Compileroptionen auf Unicode. Schon erscheint der Text in der MsgBox.

Deshalb ist PlainText in der IDE auch überflüssig, weil UTF-8 unterstützt
beides voll.

Format das beim lesen gefunden wurde, unbedingt wiederherstellen beim schreiben!

Gruß
Thomas