String zu klein?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Cykid

Betreff: String zu klein?

BeitragFr, Nov 13, 2015 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu zusammen Smile

Ich versuche aktuell einen langen Text einzulesen und diesen zu Speichern

BlitzBasic: [AUSKLAPPEN]
file$ = ReadFile("myText.txt")

Global textGesamt$ , neuerText$

Color 255,0,0
Print "Datei wird eingelesen..."

While Not Eof (file$)
textGesamt$ = textGesamt + ReadLine(file$)
Wend


Die Problematik ist das nicht der gesamte Text eingelesen wird. Ist der "String" einfach zu klein für große text (50000 zeichen) ?

Falls ja, wie kann ich es sonst lösen?

Mathias-Kwiatkowski

BeitragFr, Nov 13, 2015 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
nein ist er nicht, kannst du einfach testen

Code: [AUSKLAPPEN]
Local A$

For X%=1 To 50000
   A=A+"A"
Next

Print Len(a)
WaitKey()


Edit. Auch hier wird der fehler wo anders liegen.
aber sag mal was hast du mit so langen strings überhaupt vor? ^^
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Thunder

BeitragFr, Nov 13, 2015 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist es wirklich nur Text? Dann sollte es klappen, wie du es machst.
Bei Binärdaten sollte man lieber mit [ReadByte] oder [ReadBytes] arbeiten.

Mit Strings und Files per se kriegst du in BB erst Probleme, wenn sie >= 2 GB sind.

Du könntest uns den Text zur Verfügung stellen. Oder Mal schauen, ob irgendwelche komischen Unicode-Zeichen drinnen sind.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Xeres

Moderator

BeitragFr, Nov 13, 2015 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Variablen sind schon mal gefährlich.
ReadFile gibt keinen String zurück sondern ein Int handle.
textGesamt wird einmal mit $ geschrieben, mal ohne. Mach das einheitlich, dann gibt es auch weniger Überraschungen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Holzchopf

Meisterpacker

BeitragFr, Nov 13, 2015 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal was ganz anderes: Wie findest du denn überhaupt heraus, dass nicht der ganze String eingelesen wird?
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Eingeproggt

BeitragFr, Nov 13, 2015 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir sicher, dass Xeres aus "Freude an der Schönheit von Code" oder so heraus schreibt - womit er absolut recht hat, wenn man sauber arbeitet erspart man sich einiges an Mühe und Verwirrung.
Aber der Code von Cykid läuft in Blitzbasic "richtig". Also die beiden Variablen sind Strings, wenn das ReadFile-Handle eine Zahl ist, steht die Zahl im String (Ziffer für Ziffer sozusgen) die dann bei ReadLine wieder zurück gecastet wird - Fertig.

Ich vermute auch Probleme mit UTF8-Zeichen.

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Cykid

BeitragSo, Nov 15, 2015 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versuche grade eine Text Kompression umzusetzen. Dafür habe ich einen längeren Lorem Ipsum Text verwendet.

Ich hatte einen Fehler in der De Kompression worauf es schien als sei der String nicht komplett eingelesen ^^

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group