Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Bestimmte Zeilen aus Stringlist extrahieren (https://www.delphipraxis.net/206285-bestimmte-zeilen-aus-stringlist-extrahieren.html)

ashkan19 7. Dez 2020 10:07

Bestimmte Zeilen aus Stringlist extrahieren
 
Hallo allerseits,

Ich hab folgendes Text in einem Stringlistlist names str3 gespeichert, welche genau wie folgt aussieht:

Code:
cat /var/log/cellphone.log


+CME ERROR

+CME ERROR

+QSIMDET: 0,0



OK



+QCSQ: "NOSERVICE"



OK



OK



Quectel

BG96

Revision: BG96MAR02A07M1G



OK



864431046924538



OK



BG96MAR02A07M1G_01.016.01.016



OK



+QNWINFO: No Service



OK



OK

root@SystemV6:~

nun möchte ich ganz einfach jede Zeile, die ein : beinhaltet behalten und den rest löschen. wäre für jede Hilfe dankbar

lxo 7. Dez 2020 10:22

AW: Bestimmte Zeilen aus Stringlist extrahieren
 
Hallo,
vielleicht sowas in der Art?
Delphi-Quellcode:
   for i := Pred( <TStringList>.Count) downto 0 do
   begin
     if not <TStringList>[i].Contains( ':') then
     begin
        <TStringList>.Delete( i);
     end;
   end;
Alternativ bei älteren Delphi-Versionen so:
Delphi-Quellcode:
   for i := ( <TStringList>.Count -1) downto 0 do
   begin
     if Pos( ':', <TStringList>[i]) = 0 then
     begin
        <TStringList>.Delete( i);
     end;
   end;

Jasocul 7. Dez 2020 10:23

AW: Bestimmte Zeilen aus Stringlist extrahieren
 
Die Funktion
Delphi-Quellcode:
Pos
liefert dir die Information, ob ein Doppelpunkt im String enthalten ist.
Delphi-Quellcode:
TStringList
enthält die Methode
Delphi-Quellcode:
Delete
. Damit kannst du einzelne Zeilen aus deiner Stringliste entfernen. Das ganze in einer hübschen Schleife verpackt, sollte dir dein gewünschtes Ergebnis liefern.
Statt
Delphi-Quellcode:
Pos
kannst du auch z.B.
Delphi-Quellcode:
str3.strings[i].contains
verwenden, sofern du ein einigermaßen aktuelles Delphi verwendest. Für Details zu den Funktionen sollte die Delphi-Hilfe genügend Informationen liefern.

ashkan19 7. Dez 2020 10:27

AW: Bestimmte Zeilen aus Stringlist extrahieren
 
Zitat:

Zitat von lxo (Beitrag 1478648)
Hallo,
vielleicht sowas in der Art?
Delphi-Quellcode:
   for i := Pred( <TStringList>.Count) downto 0 do
   begin
     if not <TStringList>[i].Contains( ':') then
     begin
        <TStringList>.Delete( i);
     end;
   end;
Alternativ bei älteren Delphi-Versionen so:
Delphi-Quellcode:
   for i := ( <TStringList>.Count -1) downto 0 do
   begin
     if Pos( ':', <TStringList>[i]) = 0 then
     begin
        <TStringList>.Delete( i);
     end;
   end;

Super, ich danke dir....das mit Contains funktioniert super

stifflersmom 7. Dez 2020 12:31

AW: Bestimmte Zeilen aus Stringlist extrahieren
 
Eine Zusatzfrage von mir:

die Datei wird doch über cat aus der Shell in einem Linux System erstellt.
Warum machst Du nicht gleich ein cat dateiname|grep :>neuer_dateiname.txt

ashkan19 8. Dez 2020 12:21

AW: Bestimmte Zeilen aus Stringlist extrahieren
 
Zitat:

Zitat von stifflersmom (Beitrag 1478657)
Eine Zusatzfrage von mir:

die Datei wird doch über cat aus der Shell in einem Linux System erstellt.
Warum machst Du nicht gleich ein cat dateiname|grep :>neuer_dateiname.txt

weil das ganze dann auf die falsche Kiste gespeichert wird


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