AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Ein bestimmtes Zeichen aus einem String löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Ein bestimmtes Zeichen aus einem String löschen

Offene Frage von "Sherlock"
Ein Thema von Rabbid · begonnen am 19. Okt 2010 · letzter Beitrag vom 19. Okt 2010
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.765 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Ein bestimmtes Zeichen aus einem String löschen

  Alt 19. Okt 2010, 14:54
Ein Wort der Warnung sei aber noch erlaubt:
Dies ist mit Sicherheit nicht die erwartete Lösung!

Offenkundig geht es hier ja um eine Aufgabe, in der man lernen soll, wie mit Strings umzugehen ist. Insofern schau dir lieber nochmal an, was Himitsu geschrieben hat. Oder versuch es etwas anders:
Nimm die Zeichen für Zeichen Dein edZeichenkette.Text vor (das hast Du mit der Schleife ja schon getan). Untersuche jedes Zeichen, ob es Deinem edZeichen.Text entspricht. Wenn nicht, dann kopiere das Zeichen in einen neuen temporären String. Wenn ja, dann kopiere nichts.
Am Ende überschreibst Du Dein edZeichenkette.Text mit dem temporären String und fertig.

Das dürfte der erwarteten Lösung weitestgehend entsprechen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Ein bestimmtes Zeichen aus einem String löschen

  Alt 19. Okt 2010, 14:56
Hallo,

es geht auch über
1.
Pos, Delete.

2.
Pos, Copy


Heiko
Heiko
  Mit Zitat antworten Zitat
Rabbid

Registriert seit: 19. Okt 2010
9 Beiträge
 
#3

AW: Ein bestimmtes Zeichen aus einem String löschen

  Alt 19. Okt 2010, 15:11
Vielen Dank euch allen,

dank Deiner Erklärung Sherlock, hab ich das mitm StrinReplace hinbekommen sodass es jetzt so wie bei gmc616 beschrieben, aussieht.

Das mit mit Pos,Delete und dann Pos,Copy hab ich schon mal versucht das hat aber nicht geklappt(weil ichs falsch gemacht hab).

Die Lösung mit der Schleife schaff ich nicht, ich weiss nicht wie man das einzelne Zeichen was gerade überprüft wird betitelt um es dann in einen neuen String zu speichern....
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.765 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Ein bestimmtes Zeichen aus einem String löschen

  Alt 19. Okt 2010, 15:15
Du schaust Dir doch schon in Deinem ersten Beitrag ein einzelnes Zeichen in der Zeichenkette an (die eckigen Klammern helfen dabei ungemein).
Zur Erinnerung:
Delphi-Quellcode:
if edzeichenkette.text[b] = edzeichen.text then
  edzeichenkette.text[b]:='';
Übertrag das doch mal auf meinen in Prosa gehaltenen Lösungsweg. Versuch doch mal die beiden Zeilen oben so umzuformulieren, daß sie meinem Vorschlag entsprechen. Dann bist du ja fast schon fertig.

Wie gesagt: StringReplace dürfte als Lösung nicht akzeptiert werden...

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann

Geändert von Sherlock (19. Okt 2010 um 15:18 Uhr)
  Mit Zitat antworten Zitat
Rabbid

Registriert seit: 19. Okt 2010
9 Beiträge
 
#5

AW: Ein bestimmtes Zeichen aus einem String löschen

  Alt 19. Okt 2010, 15:26
var a,b: Integer;
c:String;
begin
a:= Length(edzeichenkette.text);
for b:= 1 to a do
if edzeichenkette.text[b]<>edzeichen.text then
c:=c+edzeichenkette.text[b];
edzeichenkette.text:=c;



jaaaaa es funktioniert!!!
tausend dank
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.765 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Ein bestimmtes Zeichen aus einem String löschen

  Alt 19. Okt 2010, 15:34
Na bitte, gern geschehen. Wenn Du Dich jetzt noch ein wenig die Traditionen hältst, und etwas schönere Namen für Deine Variablen nimmst, dann ist das fast schon professionell
Die Laufvariable b (also der Schleifenzähler) wird vom Rest der Welt mit i bezeichnet. Die Länge des Strings speicherst Du momentan in einem Ding, daß Du a nennst. Ein sprechender Name wäre schöner, beispielsweise sowas wie "laenge". Schließlich ist c ja ein temporärer String, eine Hilfsvariable, die Du verwendest, um da kurz was zwischenzuspeichern Entsprechend kannst Du sie benennen - temp zum Beispiel. Oder auch, wie es eine Kollegin von mir macht: Eimer.

Zu guter letzt, empfiehlt es sich noch den Code zu kommentieren. Das Erreichst Du indem Du zwei / schreibst. Also zum Beispiel:
a:= Length(edzeichenkette.text); // So speichere ich die Länge der Zeichenkette
Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 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