Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Procedure Delete - einzelne Buchstaben aus String löschen
Linus - Mi 08.01.03 22:29
Titel: Procedure Delete - einzelne Buchstaben aus String löschen
Hallo leutis :)
also hätte da noch ne frage....
ich habe ein eingabefeld (edit1) in das ein string geschrieben werden soll. dann noch ein eingabefeld (edit4) in, das man einen buchstaben eingibt.
dieser buchstabe soll jetzt aus dem string gelöscht werden (wenn er denn vorhanden ist....)
Bei der prozedur delete muss man ja anfang und anzahl angeben
(procedure Delete(var s:string; anfang, anzahl: integer))
1. Versuch
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button10Click(Sender: TObject); var kette, zeichen: string;
begin zeichen:=Edit4.Text[1]; kette:= Edit1.Text; Delete(kette, zeichen, 1); Edit1.Text:=kette; end; |
Fehlermeldung: Delete(kette, zeichen, 1);
Inkompatible Typen
2. Versuch
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button10Click(Sender: TObject); var kette: string; zeichen: integer;
begin zeichen:=IntToStr(Edit4.Text); kette:= Edit1.Text; Delete(kette, zeichen, 1); Edit1.Text:=kette; end; |
Fehlermeldung: zeichen:=IntToStr(Edit4.Text);
Inkompatible Typen 'Integer' und 'TCaption'
Kann mir jemand helfen?
Danke :)
Alibi - Mi 08.01.03 22:45
Delete erwartet als erstes Argument den String, als 2. die Stelle, wo es anfangen soll zu löschen und als 3. die Anzahl der zu löschenden Stellen.
Also löscht
Zeichen 2 bis 4 aus dem String (2, 3, 4).
Mach sowas wie
Quelltext
1: 2:
| while (Pos('a',bla) > 0) do delete(bla, pos('a',bla),1); |
Ungetestet....
Christian S. - Mi 08.01.03 22:46
Also:
die Funktion Delete(my_string,index,count) funktioniert folgendermaßen:
aus String "my_string" werden ab dem Buchstaben an der Position "index" soviele Buchstaben gelöscht, wie in "count" angegeben.
Beispiel:
my_string='Linus'
Delete(my_string,2,2) ==> my_string='Lus'
Wenn Du also möchtest, dass ein Buchstabe aus einem String entfernt wird (ich gehe mal davon aus, dass Du jedes Vorkommen meinst), musst Du mit einer Schleife arbeiten, die Folgendes tut:
1. Position des ersten Vorkommens des Buchstabes im String finden
2. wenn ein Vorkommen vorhanden ist, den Buchstaben unter Verwendung der Information aus (1) aus dem String entfernen
3. wenn in (2) ein Vorkommen vorhanden war, wieder mit Schritt (1) beginnen
MfG,
Peter
Anonymous - Mi 08.01.03 23:14
@Linus
Nicht falsch verstehen, aber wieso guckst du nicht in der Hilfe nach. Du kennst die Namen der Funktionen und kannst in der Hilfe nachgucken wie die funktionieren (da sind auch Beispiele drinn). Wie kommst du bloß auf die Idee in der Delete Prozedur, da wo man Integer eingibt, einen String einzugeben.
Wenn man eine "Inkompatible Typen" Fehlermeldung bekommt, dann schreibt man nicht im Forum, sondern guckt zuerst in der Hilfe was man falsch gemacht hat. Oder hast du noch Probleme zwischen Integer und String zu unterscheiden?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!