Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Listbox: inhalt größer als gewollt (https://www.delphipraxis.net/121299-listbox-inhalt-groesser-als-gewollt.html)

tadlanra 25. Sep 2008 09:49


Listbox: inhalt größer als gewollt
 
Hallo bin neu hier :)
hab folgendes problem ich hab mir aus einem richedit einen string rauskopiert und in eine listbox abgelegt (hier stehen jetzt lauter namen). jetzt will ich den eintrag aus der listbox wieder hernehmen um aus einem anderen richedit diesen namen zu finden (hier möchte ich dann zugehörige daten herauskopieren). in der listbox steht aber nicht nur das was ich reinkopiert habe, sondern auch diverse sonderzeichen sowie ein zeilenumbruch. wenn ich den inhalt der zeile also im richedit suche finde ich nichts. kann ich irgendwie ausstellen dass es mir da noch was an mein wort ranhängt, oder soll ich versuchen (natürlich etwas mehr aufwand) die letzten zeichen abzuschneiden?

p80286 25. Sep 2008 10:13

Re: Listbox: inhalt größer als gewollt
 
Hallo tadlanra,

leider kann ich nicht sehen was für Sonderzeichen Du da mitkopiert hast, darum hab ich versucht Dein Problem nachzustellen:
Delphi-Quellcode:
form1.ListBox1.Items.Add(form1.RichEdit1.Text);
form1.ListBox1.Items.Addstrings(form1.RichEdit1.lines);
Bei Möglichkeit 1 werden $0D$0A "mitkopiert" und als schwarze Kästchen angezeigt (und das ist auch abhängig vom verwendeten Font und Zeichensatz)
Bei Möglichkeit2 wird der "nackte" Text angezeigt.
Irgendwelche Formatierungen,wie fett oder kursiv, "verschwinden".

Laß doch mal sehen wie Dein Ausgangstext im Rchedit und das Kopierergebnis in derListbox aussieht

Gruß
K-H

DeddyH 25. Sep 2008 10:13

Re: Listbox: inhalt größer als gewollt
 
Versuch es mal mit trim() beim Einfügen in die ListBox.
Delphi-Quellcode:
ListBox.Items.Add(trim(DeinString));
P.S.: Willkommen in der DP :dp:

tadlanra 25. Sep 2008 10:28

Re: Listbox: inhalt größer als gewollt
 
Parameter:= Copy(RichEdit1.text, start, laenge);
ListBox2.Items.Add(Parameter);

hm habe aber grade gesehen dass ich dann nochmal von der listbox in ne andere listbox kopiere

listbox5.Items.Strings[index2]:=copy(listbox2.items.Strings[index],startpos,laenge);
//index2 : zählt die listbox5 durch
//index : zählt die listbox2 durch (nicht jede zeile wird übernommen)

hm da ich von startpos(ition) 0 ausgehe nehme ich denke ich hier schon ein paar sonderzeichen chr(1) chr(6) chr (20)... (wirkt ein bisschen willkürlich) mit. hab jetzt mal den string zugeschnitten und programm funktioniert trotzdem nicht gibt also noch ein anderes problem im weiteren programmverlauf was ich erst lösen möchte. dann kann ich das mal mit trim versuchen.

p80286 25. Sep 2008 11:01

Re: Listbox: inhalt größer als gewollt
 
hallo Tadlanra,

wenn Du copy(Text,Startpos,Laenge) einsetzt, dann sollte deine Startpos immer 1 oder größer sein!
Auf 0 liegt im allgemeinen die Länge des Strings

Gruß
K-H

tadlanra 25. Sep 2008 11:09

Re: Listbox: inhalt größer als gewollt
 
ja suuuper. lag wohl an den zeilenumbrüchen die sind jetzt durch trim weg und ich kann die strings vergleichen. Programm läuft. danke euch :)

PS: das mit der startposition werd ich mir nochmal angucken danke

DeddyH 25. Sep 2008 11:12

Re: Listbox: inhalt größer als gewollt
 
Zitat:

Zitat von p80286
Auf 0 liegt im allgemeinen die Länge des Strings

Aber nicht bei AnsiStrings. Du meinst vermutlich das Längenbyte von Shortstrings.

mkinzler 25. Sep 2008 11:18

Re: Listbox: inhalt größer als gewollt
 
Aber auch AnsiStrings starten mit Index 1

p80286 25. Sep 2008 11:19

Re: Listbox: inhalt größer als gewollt
 
korrekt!

aber auch bei Ansistrings ist 0 ein Griff in die inhaltliche Schüssel.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz