2017-03-01 2 views
0

Hallo Entschuldigung, wenn diese Frage nicht gut mit Stack-Überlauf bildet. Ich versuche jedoch, einem Textfeld programmatisch eine SEHR lange Zeichenfolge zuzuweisen, aber nur ein Teil meiner Zeichenfolge wird eingefügt. Der Rest wird abgeschnitten.VB6 lange Zeichenfolge in Textfeld kopieren

UPCSTRING ist etwa 319.000 Zeichen und hat Zeilenumbrüche nach jeweils 70 Zeichen. Warum wird die ganze Zeichenfolge nicht in der Textbox angezeigt? Gibt es einen besseren Weg, dies zu tun?

PS wenn ich debug.print UPCSTRING meine ganze Zeichenfolge angezeigt wird.

+0

Sie verstehen, dass eine 3 mb große Zeichenfolge ist ein wenig zu viel Eingabe für eine UI Textfeld? Es ist wirklich unrealistisch, diese Größe in eine Textbox einzugeben. was genau versuchst du? und haben Sie die Textboxeigenschaften so eingestellt, dass sie diese Länge akzeptieren (obwohl ich ziemlich sicher bin, 3mb in einem Textfeld in Unsinn zu speichern, und die maximale Textboxgröße ist ungefähr 64K) – nabuchodonossor

+0

Warum denken Sie, dass eine Zeichenkette mit 319.000 Zeichen 3MB ist? --- argh ich schrieb eine zu viele Null in meiner obigen Aussage –

+1

immer noch das Limit ist 64 KB (für Textbox) – nabuchodonossor

Antwort

2

Per den MSDN Article on the VB6 Textbox gibt es Beschränkungen auf die Menge an Text wird es halten:

Standardmäßig können Sie in einem Textfeld zu 2048 Zeichen eingeben. Wenn Sie die MultiLine-Eigenschaft des Steuerelements auf True festlegen, können Sie bis zu 32 KB Text eingeben.

Wie andere bemerkt haben, ist alles, was groß ist nur Unsinn für den Benutzer.

Wenn Sie auf dieser Schnittstelle bestehen, hilft vielleicht der Wechsel zu Rich Text Box, da es nicht die Textbeschränkung hat, die das Standardtextfeld tut.

+0

Nun, es ist ein wenig komisch, weil ich Benutzer Daten in Text1-Box einfügen lassen. (Einfügen von 11 Ziffernfolgen, 1 pro Zeile) Jede 11-stellige Zeichenfolge pro Zeile. Sie fügen 29.000 Zeilen ein (jeweils mit 11-stelligen Strings). Die Routine räumt die 29.000 Zeilen auf. Ersetzt alle Zeilenumbrüche durch "," Kommas und weist dann die ganze Zeichenfolge einer Variablen zu. WORKS ... Dann versucht es den Text in Text1 durch den Wert der aufgeräumten Zeichenfolge zu ersetzen und nur ein kleiner Teil geht zurück in die Box. Ungefähr 5000 Zeilen wert (natürlich mit entfernten Zeilen). WENN es zu Beginn so viel Text enthielt ... warum kann nicht dieselbe Menge zurückgehen? –

+0

"Sie kleben in 29.000 Reihen ..." Ist das eine besondere Folter? Ich bin nicht sicher, welche Art von Antwort Sie wollen, warum etwas so funktioniert, wie es in VB6 funktioniert. Microsoft hat die Unterstützung für die IDE vor über 9 Jahren eingestellt. Sie werden es wahrscheinlich nicht reparieren. Wenn Sie nach einer Möglichkeit suchen, die bereinigten Daten zurück an den Benutzer zu geben, anstatt das Textfeld zu verwenden, wie wäre es mit Clipboard.SetText? Oder werfen Sie die Daten in eine Datei. –

+0

Ich möchte nur darauf hinweisen, dass die Daten, wenn sie in das Textfeld passen, wahrscheinlich keine Einschränkung der Textbox sind. Etwas anderes ist falsch. Abgesehen davon, dass Sie das Ganze mit .net neu aufbauen können, haben Sie vielleicht eine Vorstellung davon, was hier vor sich geht oder wie Sie es beheben können? –

0

Ein normales Textfeld kann maximal 255 Zeichen lang sein. Legen Sie Text1.Multiline = True über 255 Zeichen Länge fest. Auch Multiline-Textfeld auf 32.000 beschränkt. In diesem Fall wählen Sie das Rich-Textfeld.

+0

Ich habe bereits Multi-Line-Textfeld aktiviert. Bitte lies meinen anderen Kommentar. –

+0

es ist keine Grenze der Textbox selbst etwas anderes ist falsch. –

Verwandte Themen