Autor Beitrag
Killi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 299

Win*
D6 Prof
BeitragVerfasst: Mo 28.04.03 11:30 
Hi!

Ich will in einer Memo nach Nummern suchen, aber das klappt nicht und ich hab keine AHnung warum! WIll nach Nummern suchen, die länger als 4 Zeichen sind, also 016254782 usw. und sie danach mit * verstecken!
Hab gedacht das klappt so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
     for i:= 1 to Length(MZusatz.Text) do
     begin
          //Ausgabe in ein anderes Memo
          Memo1.Lines.Add(Copy(MZusatz.Lines.Text, i, i + 1)); 

     end;

aber das geht nicht...hab gedacht er soll JEDES Zeichen im Text (Copy(MZusatz.Lines.Text, i, i + 1))) prüfen - aber er kopiert sie nicht mal richtig...wieso denn?
inselberg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458



BeitragVerfasst: Mi 07.05.03 19:17 
sind deine zahlen durch leerzeichen getrennt oder is 234234aaa auch ne zahl ?

_________________
hans bist du das ?
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 07.05.03 20:00 
prüfe doch einfach nach, ob es sich um eine zahl handelt warscheinlich ist das das problem :)

_________________
MFG
Michael Springwald, "kann kein englisch...."
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Mi 07.05.03 21:40 
Du mußt ja prüfen, ob es sich um eine Zahl handelt, wie mimi schon gesagt hat. Also zu deinem Code:

Zitat:

Code:

for i:= 1 to Length(MZusatz.Text) do
begin
//Ausgabe in ein anderes Memo
Memo1.Lines.Add(Copy(MZusatz.Lines.Text, i, i + 1));

end;


muß ja in die Schleife die Abfrage:

ausblenden Quelltext
1:
2:
3:
4:
5:
If MZusatz.Text[I]= -> Zahl zwischen 0 und 9
Then Begin
        If (MZusatz.Text[I+1]=Zahl zwischen 0 und 9) And (MZusatz.Text[I+2]=Zahl zwischen 0 und 9) usw.
Then kopiere alle Zahlen raus
        End;


Sorry, ich weiß, der Code ist nicht sehr übersichtlich und nicht der Beste, aber es sollte so gehen, denke ich. :-)

_________________
Hasta La Victoria Siempre
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 07.05.03 22:05 
das sollte so lauten:
ausblenden Quelltext
1:
2:
3:
4:
  for i:= 1 to Length(MZusatz.Text) do   begin 
     if  Copy(MZusatz.Lines.Text, i, i + 1)) in [0..9] then // so sollt es funktionieren
       Memo1.Lines.Add(Copy(MZusatz.Lines.Text, i, i + 1)); 
   end;

_________________
MFG
Michael Springwald, "kann kein englisch...."