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 Wörter in einem String isolieren (https://www.delphipraxis.net/113897-woerter-einem-string-isolieren.html)

S20000 16. Mai 2008 12:56


Wörter in einem String isolieren
 
Hallo zusammen,

ich habe folgendes Problem.
Ich habe eine StringListe mit einzelnen Strings(Zeilen) der Form:


Name1 Name2 Name3 Name4 Name5 Name6

Name 1-3 haben 3 Leerzeichen zwischen den Wörtern, Name 4 und 5 - 4 Leerzeihen,
und Name 5 und 6 haben 2 Leerzeichen.

Nun möchte ich jeden String in eine Liste Auftrennen:

Name1
Name2
...
Name6

Ich möchte also jedes Wort vereinzeln. (Ziel des ganzen ist später
das Abspeichern jeder Zeile in einem Record mit Name1 Name2....,
dazu muss ich aber die Elemente voneinander isolieren.

Ich habe schon versucht die Aufgabe mit StrSplit zu lösen,
damit kann ich aber nur auf einen Char abfragen. Z.B. " ".
Ich habe aber mehrere Leerzeichen dazwischen?!

Gruß
Sebastian

Sharky 16. Mai 2008 12:58

Re: Wörter in einem String isolieren
 
Hai S20000,

schreibe Dir doch eine kleine Funktion die die unnötigen Leerzeichen aus dem String entfernt.
Bzw. Mit StringRepleace die vier bzw. zwei Leerzeichen durch eines ersetzen.

Hansa 16. Mai 2008 13:00

Re: Wörter in einem String isolieren
 
Dann mache den Rest mit "Trim". -> F1

mkinzler 16. Mai 2008 13:02

Re: Wörter in einem String isolieren
 
rim entfernt aber nur Leerzeichen am Anfang und Ende eines Strings. Ich wüsste nicht, wie das ihm helfen soll.

Hansa 16. Mai 2008 13:13

Re: Wörter in einem String isolieren
 
st : die Zeile, um die es geht. Er soll Trim (st) machen. Dann sind eventuelle Leerzeichen rechts und links schon mal weg. Dann bis zum nächsten Leerzeichen lesen. Das gelesene mit StringList.Add festhalten und mit delete (length (Wort) aus st löschen). Kommt jetzt nur ein Leerzeichen oder 44 ? Egal. Trim (st) usw. Ob das einer versteht ? No Time. :mrgreen:

Sherlock 16. Mai 2008 13:14

Re: Wörter in einem String isolieren
 
Wie wäre es mit einer Routine, die durch den String läuft und jede Folge von nicht Leerzeichen in eine Stringliste kopiert? Das müsste doch einfach zu machen sein.

Edit: Hansa das ist wirklich zu einfach :mrgreen:, und damit ist es wirklich trivial umzusetzen.

Sherlock

Hansa 16. Mai 2008 13:24

Re: Wörter in einem String isolieren
 
Yes indead. :mrgreen: Für überflüssige Leerzeichen ist immer Trim zuständig !

guidok 16. Mai 2008 13:36

Re: Wörter in einem String isolieren
 
Ich verwende für solche Sachen meist die Eigenschaften DelimitedText, Delimiter und StrictDelimiter einer TStringList.

Einfach den String der Eigenschaft DelimitedText zuweisen und über Strings[Index] auslesen.

S20000 18. Mai 2008 22:41

Re: Wörter in einem String isolieren
 
Hallo zusammen,

das aufsplitten der Liste habe ich jetzt hinbekommen.
Ich hätte noch eine weitere Frage.

Ist es möglich aus einer TXT-Datei automatisch eine
Tabelle zu erzeugen? Mit liegt eine TXT Datei vor,
die pro Zeile zusammengehörende Daten hat.

z.B.:

Nachname1 Vorname1 Wohnort1 Straße1 Hausnummer1 TelNummer1
Nachname2 Vorname2 Wohnort2 Straße2 Hausnummer2 TelNummer2
Nachname3 Vorname3 Wohnort3 Straße3 Hausnummer3 TelNummer3 Handynummer3
..
..
..

Am liebsten würde ich jetzt jede Zeile in einem eigenen Record speichern.
Jede Person in der Liste bekommt einen eigenen Record.
Daher die Frage, ob man am besten eine Tabelle o.ä. anlegt?!
Oder wie würdet ihr die Informationen aus der Liste auslesen?

Gruß
Sebastian

everdream 19. Mai 2008 01:41

Re: Wörter in einem String isolieren
 
Du könntest deine Tabelle in eine XML-Datei speichern. Dazu gibt es beim Delphitreff ein übersichtliches Tutorial.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 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