String durchsuchen?
Hallo,
ich habe gerade ein kleines Problem. Ich möchte einen String durchsuchen und ihn aufteilen in Ziffern und Zeichen. Beispiel: String = Karotten 100 g Dann möchte ich diesen String aufteilen in Karotten und 100. Wie mach ich das am besten? Vielen Dank! :-D |
Re: String durchsuchen?
Pos()/PosEx(), per Stringliste (.Delimiter, .DelimitedText), Explode()
|
Re: String durchsuchen?
Und wie kann ich da sagen, dass ich nach einem beliebigen Buchstaben, also a-z suche?
|
Re: String durchsuchen?
Dann bräuchtest du Regular Expressions
|
Re: String durchsuchen?
Okay, und wie benutze ich die?
Eine Antwort mit mehr als 3-5 Wörtern wäre hilfreich :( |
Re: String durchsuchen?
Schau mal hier: http://www.delphipraxis.net/videos#Stammtisch_2 (Teil 4)
|
Re: String durchsuchen?
Hallo,
ich habe dir da mal ein kleines Beispiel programmiert. Um die Position eines Buchstaben in einem String herrauszufinden, kannst du folgende Function verwenden:
Delphi-Quellcode:
MFG Christian18
function GetCharPosition(AZeichenkette: String; AZeichen: Char) : Integer;
begin Result:=Pos(AZeichen, AZeichenkette); end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(IntToStr(GetCharPosition('Hallo', 'a'))); end; |
Re: String durchsuchen?
Wenn ich auf das n-te Element eines Arrays zugreifen möchte und in diesem Element auf das m-te Zeichen, mach ich das dann so?
Array[n][m] ? |
Re: String durchsuchen?
Neue Frage, neuer Thread bitte.
|
Re: String durchsuchen?
Zur Ursprünglichen Frage - Man kann auf die einzelnen Zeichen eines Strings wie folgt zugreifen:
Delphi-Quellcode:
An welcher Stelle du dann etwas trennst oder noch was du genau suchst ist immer die Schwierigkeit. Am besten geht man so ran das man sich überlegt wodurch man selbst feststellt das etwas nicht mehr dazu gehört.
Buchstabe := MeinString[IndexDesBuchstaben];
In deinem Beispiel auf meine Vorgehensweise bezogen: "Karotten 100 g" Da seh ich "einen Gegenstand" und danach eine Zahl die ich in der Verbindung gar nicht kenne. Also wäre meine erste Herangehensweise einfach den String bis zur ersten Ziffer zu durchsuchen. Alles vor der Ziffer scheint dann der Text zu sein. Sobald hinter der ersten gefundenen Ziffer keine weitere Ziffer kommt ist die Zahl (also die 100) zu Ende. Jetzt könnte aber noch so ein Beispiel kommen: "1000füßler 100 Stück" Bei dem Beispiel sag ich mir dann, es wäre besser den Sting von hinten durchzugehen. Ganz hinten kommt immer die Einheit, davor dann eine Zahl und davor die Bezeichnung. Wenn man das ganze so sieht passiert später auch kein Missgeschick wenn der Begriff vorn aus 2 Wörtern besteht weil man ja von Hinten anfängt :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 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