AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zeilen ohne gesuchten String aus Datei entfernen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilen ohne gesuchten String aus Datei entfernen

Ein Thema von qb-tim · begonnen am 14. Aug 2007 · letzter Beitrag vom 14. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#1

Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 14:58
Hi,

ich habe eine rießige Datei, rand-voll mit allen möglichen Informationen, von der ich nur Zeilen, in der ein bestimmter String enthalten ist, in eine neue Datei kopiere...

Bsp:
Originaldatei:
Delphi-Quellcode:
Name: Mustermann
Vorname: Max
Name: Irgendwer
Vorname: Inge
Name: Y
Vorname: X
...
Zu suchender String: (Groß- und Kleinschreibung soll beachtet werden!)
'Name:' Ausgabedatei:
Delphi-Quellcode:
Name: Mustermann
Name: Irgendwer
Name: Y
...
Wie kann ich das anstellen?

Delphi-Quellcode:
procedure PurgeFile(MyFile: String; PurgeID: String); // MyFile = Originaldatei; PurgeID = Zu suchender String
var file1, file2: textfile;
    s: String;
being
  AssignFile(file1, MyFile);
  AssignFile(file2, 'Purged.txt');
  Reset(file1);
  Rewrite(file2);
  while not EoF(file1) do
  begin
    ReadLn(file1, s);
    if s ?????? then // Prüfen ob "PurgeID" in "s" vorhanden ist
      WriteLn(file2, s);
  end;
  CloseFile(file1);
  CloseFile(file2);
end;
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:01
 if pos(PurgeID,s) > 0 then
[edit] lowerCase wieder entfernt, Begründung siehe unten: [/edit]
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:04
Achtung: In der Delphi-Hilfe steht:

Zitat:
Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#4

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:07
Vielen Dank für die schnelle Antwort Klaus...

Für mich funzt's jetzt!



Zitat von Reinhardtinho:
Achtung: In der Delphi-Hilfe steht:

Zitat:
Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt.
Hmm... Das könnte eventuell ein Problem darstellen... Was nun?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:09
Entweder CompareText verwenden oder AnsilowerCase und AnsiUpperCase verwenden.
Wenn du die Zeile also komplett in großbuchstaben wandelst kannst du dann prüfen ob der Suchbegriff (welcher auch komplett in großbuchstaben gewandelt wird) drin enthalten ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:10
Zitat von qb-tim:
Vielen Dank für die schnelle Antwort Klaus...

Für mich funzt's jetzt! :thumb:



Zitat von Reinhardtinho:
Achtung: In der Delphi-Hilfe steht:

Zitat:
Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt.
Hmm... Das könnte eventuell ein Problem darstellen... Was nun?
Habe es in meinen ersten beitrag verbessert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:18
Wenn ich das richtig verstehe, ist da aber kein Unterschied.

Ob mit oder ohne Lowercase, die Treffer wären doch trotzdem gleich.

Wenn aus NAme und naME jeweils name wird, dann wird doch die Groß/Kleinschreibung in der Datei nicht berücksichtigt. Das gleiche macht doch Pos von sich aus dann schon ... (?)



MFG
Lorenz
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:23
Hallo,

wer Zugriff auf die Funktion AnsiContainsText() hat, der kann auch UTF8-Dateien verarbeiten:

Delphi-Quellcode:
begin
  // ...
  while not Eof do
  begin
    ReadLn(line);
    if AnsiContainsText(line, PurgeId) then
      WriteLn(line);
  end;
  // ...
end;
Aber eigentlich ist das eine Aufgabe, die man ohne Gesichtsverlust auf der Shell-Ebene erledigen kann:

Code:
grep 123 input.txt >output.txt
Grüße vom marabu
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#9

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:29
Zitat von Reinhardtinho:
Wenn ich das richtig verstehe, ist da aber kein Unterschied.
Du verstehst es richtig, trotzdem ist es falsch

Ein kleines Beispiel zum mitmachen...

Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var
   lstData: TStringlist;
   iPos: Integer;
Begin
   lstData := TStringlist.Create;
   Try
      lstData.Add('Hallo');

      iPos := Pos('hallo', lstData.Text);

      If iPos > 0 Then
         ShowMessage(IntToStr(iPos))
      Else
         ShowMessage('Pech gehabt');
   Finally
      FreeAndNil(lstData);
   End;
End;
Und? Wie wird die Antwort wohl lauten?

Edit:
In der Hilfe des BDS4.0 ist dieser Fehler übrigens korrigiert worden:
Zitat von Delphi 2006-Hilfe:
Die Groß/Kleinschreibung wird von Pos berücksichtigt.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Zeilen ohne gesuchten String aus Datei entfernen

  Alt 14. Aug 2007, 15:30
Zitat von Reinhardtinho:
Achtung: In der Delphi-Hilfe steht:

Zitat:
Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt.
@Reinhardt
.. hast nich ganz durcheinander gebracht ...

Nun in meiner Hilfe steht:
Zitat von DelphiHife:
Pos searches for Substr within S and returns an integer
value that is the index of the first character of Substr within S.
Pos is case-sensitive. If Substr is not found, Pos returns zero.
Ansonsten, marabus Hinweis befolgen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:03 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