vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaenge > 255 Zeichen 
Autor: Preisser
Datum: 17.08.13 14:53

Hallo,

also dass der Fehler bei ReDim Buffer(RowLength + 1) auftreten soll, wenn RowLength > 255 ist, kann ich mir nicht vorstellen.
Ein Überlauf-Fehler würde ja auftreten, wenn eine Integer-Zahl den höchsten Wert überschritten hat (in C-artigen Sprachen würde dann mit dem niedrigsten Wert weitergerechnet). Ein Long in VB6/VBA ist ein 32-Bit Signed Integer und kann deshalb max. 2^31-1 werden. Selbst wenn RowLength als Byte deklariert wurde, müsste VB bei der Addition daraus ein Integer (16-Bit) machen.


Mit der String-Übergabe (also die geänderte Funktion) müsste es auch gehen, ist aber nicht so sauber, da man dann die Längen-Bytes als Unicode-Zeichen ausdrücken muss (das fehlt in deinem Beispielcode - da du dort Space() benutzt, müsste die von der API-Funktion gelesene Länge 0x2020, also 8224 sein), die entstehen, wenn man das Byte von ANSI nach Unicode konvertiert, da VB dann glaub ich von Unicode nach ANSI marshallt, dann die Funktion aufruft, und dann wieder von ANSI nach Unicode konvertiert.

Man könnte aber auch SendMessageW verwenden, die mit Unicode arbeitet, und einen Pointer auf den String übergeben.

Edit: Ich hab den Code aus dem Tipp mal unter einer virtuellen XP-Maschine mit VB6 ausprobiert, und da tritt der Überlauffehler nicht bei Redim(...), sondern bei Buffer(0) = RowLength auf. Mit den 2 geänderten Zeilen aus meinem vorherigen Beitrag funktioniert es auch mit längeren Zeilen.

Beitrag wurde zuletzt am 17.08.13 um 15:15:05 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaenge &g...1.765Lilith17.08.13 10:37
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaeng...1.164Preisser17.08.13 12:54
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaeng...1.112Lilith17.08.13 14:19
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaeng...1.099Preisser17.08.13 14:53
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaeng...1.102Lilith17.08.13 15:16
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaeng...1.071Preisser17.08.13 15:43
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaeng...1.197Lilith17.08.13 16:00
Re: Zeilen aus RichTextBox auslesen: Problem bei Zeilenlaeng...1.050Lilith17.08.13 16:06

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel