Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String durchsuchen? (https://www.delphipraxis.net/115705-string-durchsuchen.html)

mo_greene 16. Jun 2008 17:39


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

mkinzler 16. Jun 2008 17:43

Re: String durchsuchen?
 
Pos()/PosEx(), per Stringliste (.Delimiter, .DelimitedText), Explode()

mo_greene 16. Jun 2008 17:54

Re: String durchsuchen?
 
Und wie kann ich da sagen, dass ich nach einem beliebigen Buchstaben, also a-z suche?

mkinzler 16. Jun 2008 17:56

Re: String durchsuchen?
 
Dann bräuchtest du Regular Expressions

mo_greene 16. Jun 2008 18:20

Re: String durchsuchen?
 
Okay, und wie benutze ich die?

Eine Antwort mit mehr als 3-5 Wörtern wäre hilfreich :(

DeddyH 16. Jun 2008 18:22

Re: String durchsuchen?
 
Schau mal hier: http://www.delphipraxis.net/videos#Stammtisch_2 (Teil 4)

Christian18 16. Jun 2008 18:27

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:
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;
MFG Christian18

mo_greene 16. Jun 2008 18:31

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] ?

DeddyH 16. Jun 2008 18:32

Re: String durchsuchen?
 
Neue Frage, neuer Thread bitte.

SirThornberry 16. Jun 2008 18:44

Re: String durchsuchen?
 
Zur Ursprünglichen Frage - Man kann auf die einzelnen Zeichen eines Strings wie folgt zugreifen:
Delphi-Quellcode:
Buchstabe := MeinString[IndexDesBuchstaben];
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.

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 07:36 Uhr.
Seite 1 von 2  1 2      

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