AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bestimmte Bereiche aus Datei auslesen und in neue schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Bestimmte Bereiche aus Datei auslesen und in neue schreiben

Ein Thema von Oli.1010 · begonnen am 24. Mär 2005 · letzter Beitrag vom 31. Mär 2005
Antwort Antwort
Seite 3 von 4     123 4      
Kernel32.DLL
(Gast)

n/a Beiträge
 
#21

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 11:14
Zitat von Wuaegner:
Was für eine Fehlermeldung?
Wahrscheinlich eine hübsche AV, weil er, wie anfangs bereits gesagt, die TStringlists, die er hat, freigibt.

@Oli.1010:

Also, nimm erstmal das

Delphi-Quellcode:
dateiliste.free;
inhalt.free;
aus der Schleife und setz es vor dein letztes "end;".

Ich kann nicht hellsehen und weiß auch nicht, welchen Wert "inhalt.text" zur Laufzeit hat.
Delphi hat einen hübschen Debugger (wenn ich doch bloß wüsste, welche Delphi - Version du hast...). Benutze den doch einfach mal. Mich würde nämlich zu gerne interessieren, was in "inhalt.text" drinnesteht.

mfg
Daniel

[Edit 1] Narf... Das Ding hieß "inhalt.text", nicht "inhalt.txt" [/Edit 1]
[Edit 2] Huch... Die beiden Posts vor mir habe ich ja gar net gesehen... [/Edit 2]
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#22

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 11:31

Zitat:
kann aber nach durchlaufen des Programms keine Veränderungen an der *.html-datei einsehen.
Genial, der Code macht meistens nicht das, was er soll, wenn eine Exception ausgelöst wird, was uns vielleicht nicht verschwiegen werden sollte.
Probier also mal das:
Delphi-Quellcode:
for i:=0 to dateiliste.Count-1 do
begin
  inhalt.LoadFromFile(dateiliste[i]);
  if Pos(ComboBox1.Text, inhalt.Text) > 0 then //statt inhalt[0]
    inhalt.Text := copy(inhalt.text,0,Pos('',inhalt.text)-1)+copy(inhalt.text,Pos('',inhalt.text)+21,Length(inhalt.text));
  // hier verstehe ich gar nichts, "+21" ? Das sieht so aus, als ob du alles außer den begin-end Teil kopierst
  AssignFile(f, dateiliste[i]); //das und folgendes sollte wohl auch in den if-Zweig
  Rewrite(f);
  Writeln(f, '<html>');
  Writeln(f, '<head>');
  Writeln(f, '<title>test</title> ');
  Writeln(f, '</head>');
  Writeln(f, '<body>');
  Writeln(f, '');
  Writeln(f, ' '+inhalt.Text+' ');
  Writeln(f, '');
  Writeln(f, '</body>');
  Writeln(f, '</html>');
  closeFile(f);
  ShowMessage(' in' +dateiliste[i]+ 'erfolgreich überarbeitet.') ; //statt +Combobox1.Text+
  end; //wichtig, folgendes gehört nicht mehr zur Schleife
dateiliste.free;
inhalt.free;
end;
[edit] Ich schreibe zu langsam .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Kernel32.DLL
(Gast)

n/a Beiträge
 
#23

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 11:45
Zitat von Wuaegner:
GetFilesInDirectory hast du selber geschrieben oder? Wie sieht die aus?
So:

Delphi-Quellcode:
procedure GetFilesInDirectory(Directory: String; const Mask: String;
                              List: TStrings;
                              WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then try
    repeat
      List.Add(Directory + SR.Name)
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if (SR.Attr = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
    if ClearList then
      List.Clear;
    if Directory = 'then Exit;
    if Directory[Length(Directory)] <> '\then
      Directory := Directory + '\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;
Zu finden auf
www.dsdt.info (im EDH)
  Mit Zitat antworten Zitat
Oli.1010

Registriert seit: 24. Mär 2005
14 Beiträge
 
Delphi 7 Professional
 
#24

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 15:27
Mein GetFilesInDirectory
Delphi-Quellcode:
procedure GetFilesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean);
var
  SR: TSearchRec;
begin
  if (ADirectory<>'') and (ADirectory[length(ADirectory)]<>'\') then
    ADirectory:=ADirectory+'\';

  if (FindFirst(ADirectory+AMask,faAnyFile-faDirectory,SR)=0) then begin
    repeat
      if (SR.Name<>'.') and (SR.Name<>'..') and (SR.Attr<>faDirectory) then
          AList.Add(ADirectory+SR.Name)
    until FindNext(SR)<>0;
    FindClose(SR);
  end;

  if ARekursiv then
    if (FindFirst(ADirectory+'*.*',faDirectory,SR)=0) then
    begin
      repeat
        if (SR.Name<>'.') and (SR.Name<>'..') then
          GetFilesInDirectory(ADirectory+SR.Name,AMask,AList,True);
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
end;
Habe jetzt
Delphi-Quellcode:
dateiliste.free;
inhalt.free;
aus der Schleife herausgenommen.
Jetzt führt er Änderungen an den HTML-Dateien durch, aber wie Khabarakh schon sagte, kopiert er alles bis auf den Teil den ich eigentlich nur kopiert haben möchte.
Aber ich will ja nur den teil zwischen den und kopieren?
  Mit Zitat antworten Zitat
Oli.1010

Registriert seit: 24. Mär 2005
14 Beiträge
 
Delphi 7 Professional
 
#25

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 15:58
jemand ne idee wie ich den spieß umdrehen könnte?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#26

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 19:20
inhalt.Text := Copy(inhalt.text, Pos('', inhalt.text)), Copy(inhalt.text, Pos('', inhalt.text) + Length('')); Sollte stimmen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Oli.1010

Registriert seit: 24. Mär 2005
14 Beiträge
 
Delphi 7 Professional
 
#27

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 20:09
da bringt er jetzt leider folgende Fehlermeldung beim Kompilieren:
"Nicht genügend wirkliche Parameter"
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#28

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 21:53
Hups.
inhalt.Text := Copy(inhalt.text, Pos('', inhalt.text), Pos('', inhalt.text) + Length(''));
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Oli.1010

Registriert seit: 24. Mär 2005
14 Beiträge
 
Delphi 7 Professional
 
#29

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 22:12
hey vielen Dank für die schnelle Hilfe.

Jetzt wir zwar der Text der zwischen den beiden markern steht kopiert und in die anderen html-dateien übertragen, aber die 2 marker stehen dann auch noch in den neuen seiten außerdem wird der quelltext hinter auch kopiert (genau 179 zeichen).

Gibt es ne möglichkeit nur die zeichen zwischen den beiden markern und zu kopieren?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#30

Re: Bestimmte Bereiche aus Datei auslesen und in neue schrei

  Alt 30. Mär 2005, 23:03
Schon wieder hups. Copy nimmt nicht Anfang und Ende, sondern Anfang und Länge als Parameter an:
inhalt.Text := Copy(inhalt.text, Pos('', inhalt.text) + Length(''), Pos('', inhalt.text) - Pos('', inhalt.text) - Length('')); Oder etwas übersichtlicher:
Delphi-Quellcode:
const KeyWord1 = '';
     KeyWord2 = '';
var NavigationBegin: Integer;
begin
[...]
  NavigationBegin := Pos(KeyWord1, inhalt.Text) + Length(KeyWord1);
  inhalt.Text := Copy(inhalt.Text, NavigationBegin, Pos(KeyWord2, inhalt.Text) - NavigationBegin);
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 21:59 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