Autor Beitrag
Risuke
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 19.09.08 21:04 
hallo leute,

bin ein kleiner anfänger was delphi angeht und wollte wissen wie man wörter aus texten filtern kann

hab mich überall umgeschaut aber ich verstehe echt nix -_-

hier ein bspl.:

"Name: Cloud
Alter: 18
Haarfarbe: Blond
Typ: Cool ohne ende"

hier möchte ich jetzt, das nur dies wörter und zeichen verschwinden:

"Name:
Alter:
Haarfarbe:
Typ:"

naja, hier der code den ich bis jetzt zusammen geschnippselt habe (ja ich weiß das da sehr viele fehler sind, aber weiß nich wo xD):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
//benutzt werden hier 2 ListBoxen und ein button führ die ausführung
//dabei soll der text in die erste box eingegeben werden und in der 2. box die wörter die übrig bleiben

procedure TForm1.b_filterClick(Sender: TObject);

var

a,c,d,b: integer;

begin

a:=strtoint(l_1);

b:=pos('Name:''Alter:''Haarfarbe:''Typ:',a);


if b <> 0 then

c:=delete(b);

lol2.text:=inttostr(c);

else

c:='nix';

l_2.text:=inttostr(c)
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Fr 19.09.08 21:13 
Wenn du bestimmte Wörter löschen willst, schau dir mal StringReplace(); an, und ersetz in dem Fall mit nichts, also ''

_________________
PROGRAMMER: A device for converting coffee into software.
Risuke Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 19.09.08 21:44 
meinst du so in der art?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
before, after : string;

begin

before:=inttostr(l_1.text);

after:=StringReplace(before,'Name:''Alter:''Haarfarbe:''Typ:''',[rfReplaceAll, rfIgnoreCase]);


l_2.Text:=strtoint(After);

end;


naja klappt aber irgendwie immer noch nicht. also sratet nichmal, wegen strtoint oder so
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 19.09.08 21:50 
user profile iconRisuke hat folgendes geschrieben:
naja klappt aber irgendwie immer noch nicht. also sratet nichmal, wegen strtoint oder so

Wozu verwendest du eigentlich IntToStr? Dein Code enthält so viele Integers, obwohl es doch überhaupt nicht um Zahlen geht!?

Du könntest in einer for-Schleife die einzelnen Zeilen des Strings durchgehen. Dann suchst du mit Pos einen Doppelpunkt, und löschst alles davor. Schau dir am besten mal an, was die Delphi-Online-Hilfe zu den String-Funktionen sagt.
Risuke Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 19.09.08 21:56 
naja die sache ist ja die, das mit dem ":" ist nur im beispiel, das wofür ich es brauche binhaltet schon mehr wörter auch oft ohne sonderzeichen

und mit dem inttostr und so, ich habe es so gelernt xD" ich wusste gar nicht das es auch anders geht Oo"
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: Fr 19.09.08 22:06 
ausblenden Delphi-Quelltext
1:
l_2.Text:=strtoint(After);					


Dir ist klar, dass du einem Edit o. Ä. keinen Integer als Text zuweisen kannst, oder? :shock:
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 19.09.08 22:09 
user profile iconRisuke hat folgendes geschrieben:
und mit dem inttostr und so, ich habe es so gelernt xD"

Was hast du gelernt? Dass man für Texte Integers braucht? :shock:

user profile iconRisuke hat folgendes geschrieben:
ich wusste gar nicht das es auch anders geht Oo"

Es geht nicht auch anders, sondern nur anders. Wenn du deinen Quelltext complierst, werden dir gleich diverse Syntax-Fehler angezeigt.

user profile iconRisuke hat folgendes geschrieben:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
//benutzt werden hier 2 ListBoxen und ein button führ die ausführung
//dabei soll der text in die erste box eingegeben werden und in der 2. box die wörter die übrig bleiben

procedure TForm1.b_filterClick(Sender: TObject);

var

a,c,d,b: integer;

begin

// "Wandle die Variable l_1 (vermütlich die Listbox - ein Steuerelement) in eine Zahl um."
a:=strtoint(l_1);

// "Suche in der Zahl a nach dem String Name:'Alter:'Haarfarbe:'Typ:"

b:=pos('Name:''Alter:''Haarfarbe:''Typ:',a);

// "Wenn der String in der Zahl a gefunden wurde ..."
if b <> 0 then

// "Weise der Zahl c den nicht vorhandenen Rückgabewert der Funktion Delete zu, der 2 Parameter fehlen"
c:=delete(b);

// "Zeige im Steuerelement lol2 die Zahl c an"
lol2.text:=inttostr(c);

// "Wenn der String nicht in der Zahl a gefunden wurde ..."
else

// "Weise der _Zahl_ c den Text "nix" zu"
c:='nix';

// "Zeige im Steuerelement l_2 die Zahl c an"
l_2.text:=inttostr(c)

Das sagst du dem Compiler.

Ich will dich damit jetzt weder auslachen noch bloßstellen, sondern lediglich demonstrieren, was der Compiler von deinem Code mitbekommt. Vielleicht solltest du doch lieber nochmal etwas Grundlagen ansehen, zum Beispiel wie man den richtigen Variablentypen wählt. Integer steht für eine Zahl, und String für einen Text. Du brauchst eindeutig letzteres, nur für den Rückgabewert von Pos - das ist die Position des gesuchten Textes.

Dir würde es sicherlich auch helfen, in der Delphi-Hilfe die verwendeten Befehle nachzuschlagen. :les:

Grüße,
Yogu