AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Stringliste nach Zeichen trennen und auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Stringliste nach Zeichen trennen und auslesen

Ein Thema von MicA · begonnen am 17. Apr 2012 · letzter Beitrag vom 20. Apr 2012
Antwort Antwort
Seite 1 von 3  1 23      
MicA

Registriert seit: 17. Apr 2012
Ort: München, Pocking
7 Beiträge
 
#1

Stringliste nach Zeichen trennen und auslesen

  Alt 17. Apr 2012, 16:33
Delphi-Version: 7
Hallo,

ich versuche schon den ganzen Tag über eine Funktion zu schreiben mit der sich eine Stringliste nach bestimmten Werten durchsuchen lässt. Es gibt ja bereits einige Vorschläge für dieses Problem, aber irgendwie bekomm ich das nicht auf die Reihe.

Im Wesentlichen soll eine Stringliste mit dieser Form durchsucht werden:

*SIGNAL* NetC32_1
C32.1 C45.1 C47.1 C48.1 E6.2 U2.B7 U2.M3 U2.M4 U2.M7 U2.M8 U2.N5 X16.1
X16.6 X16.7 X16.12
*SIGNAL* NetC51_1
C51.1 R56.1 R57.1

Dabei soll das Wort *SIGNAL* ein Trennzeichen darstellen und der Wert dahinter ausgelesen werden, so dass ich diesen String später wieder weiter verwenden kann.

Ich habe nun mehrere Möglichketen probiert. Beispielsweise den Ansatz mit Delimiter oder for sowie if-Schleifen, aber ich schaffe es einfach nicht, dass *SIGNAL* als einziges Trennzeichen akzeptiert wird.

Im Prinzip habe ich schon einiges ausprobiert, momentan arbeite ich noch mit diesem Stückchen Code:

NetList.LoadFromFile(Filepath);

ShowMessage(NetList.Text);

StringList.Delimiter := ' ';
StringList.QuoteChar := '*SIGNAL*';
StringList.DelimitedText := NetList.ToString;

ShowMessage(StringList.Text);

Ist es irgenwie möglich, den Code noch so abzuändern, dass die Liste an den Stellen mit *SIGNAL* getrennt wird und anschließend der Wert dahinter ausgelesen werden kann? Ich wäre um jede Hilfe dankbar!
Michael
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 17. Apr 2012, 16:37
Hallo und Willkommen in der DP ,

willst Du nur die Zeilen mit *SIGNAL*, oder auch die anderen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 17. Apr 2012, 16:42
Beginn mit Pos()/PosEx() suchen und dann ab Findeposition plus Trennerlänge weitersuchen
Markus Kinzler
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 17. Apr 2012, 17:04
Vielleicht kannst du damit etwas anfangen, Anregungen holen, es eventuell anpassen:

Delphi-Quellcode:
function DelimTextToCommaText(sText: String; sDel: String): String;
begin
  with TStringList.Create do try
    while Length(sText) <> 0 do begin
      if Pos(sDel, sText) = 0 then sText := sText + sDel;
      Add(Trim(Copy(sText, 1, Pos(sDel, sText) - 1)));
      System.Delete(sText, 1, Pos(sDel, sText) + Length(sDel) - 1);
    end;
    Result := CommaText;
  finally Free end;
end; {Popov}

procedure TForm1.Button1Click(Sender: TObject);
var
  Text, Del: String;
begin
  Text := '254#*-#24#*-#250#*-#138#*-#186#*-#162#*-#190#*-#128';
  Del := '#*-#';
  ListBox1.Items.CommaText := DelimTextToCommaText(Text, Del);
end;
Es ist zwar nicht ganz das was du suchst, geschrieben habe ich es mal, weil es bei D3 TStringList kein DelimiterText gab. Zufällig zerlegt es einen String mit jedem Trennbegriff.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 17. Apr 2012, 17:19
Wie wäre es mit sortieren,
Zeilen die nicht mit *SIGNAL* beginnen löschen,
aus dem Rest *Signal* löschen,
fettig.

nicht elegant aber einfach.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 17. Apr 2012, 22:13
[OT]
... oder for sowie if-Schleifen, ...
aua
[/OT]
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 17. Apr 2012, 23:55
Im Leben ist alles Möglich, sogar eine If-Endlos-Schleife
Delphi-Quellcode:
label
  a;
begin
  a: if True then Goto a;
end;
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 18. Apr 2012, 02:07
Im Leben ist alles Möglich, sogar eine If-Endlos-Schleife
Delphi-Quellcode:
label
  a;
begin
  a: if True then Goto a;
end;
Trotzdem "AUA"! Wer so programmiert, sollte wieder zu QuickBasic wechseln
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 18. Apr 2012, 07:56
Im Leben ist alles Möglich, sogar eine If-Endlos-Schleife
Delphi-Quellcode:
label
  a;
begin
  a: if True then Goto a;
end;
Das ist doppelt aua, denn das Schleifenelement ist nicht if sondern goto und label

if ist und bleibt eine Bedingung und wird auch nicht durch (un-)geschickte Kombination zu einer Schleife
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Stringliste nach Zeichen trennen und auslesen

  Alt 18. Apr 2012, 08:15
Müsste es nicht reichen wenn er bei seiner Stringliste einfach

StringList.StrictDelimiter := true; setzt?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:36 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