Autor Beitrag
nina Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 62



BeitragVerfasst: Fr 09.05.03 13:34 
@hansa:
Ich weiss was Du mit diesen zwei Memos meinst, aber ich muss doch bestimmt irgendwo angeben welche Zeilen bleiben sollen und welche Zeilen in die andere Memo sollen?
Und genau da weiss ich nicht weiter!

@Mathias:
Mit Arrays habe ich noch nichts gemacht! Aber wenn ich das richtig verstanden habe, dann hast Du drei Felder angelegt und mit den jeweiligen Adressen gefüllt? Sollte das so sein: Ich kenne die Adressen nicht die in dieser Datei abgespeichert werden. Ich weiss nur diesen Bereich!

<RDF:li></RDF:li>;

Sobald eine neue Adresse eingegeben wird füllt er die zwischen die zwei Klammern!

Wenn ich falsch liebe, dann bitte ich um Erklärung!

Ich entschuldige mich schon mal im voraus für die "dummen" Fragen und für die noch blöderen Erklärungen von mir!

Nina
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: Fr 09.05.03 13:48 
Du musst doch dann nur noch zeilenweise durchgehen und überprüfen, ob irgendwo ein "<RDF:li>" vorkommt. Wenn ja --> Zeile löschen (ich nehme mal an, dass pro Zeile nur ein Eintrag in der Datei existiert).

_________________
If accidentally read, induce vomitting.
nina Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 62



BeitragVerfasst: Fr 09.05.03 14:00 
Das hab ich auch schon probiert! Macht er allerdings auch nicht. Er löscht nur dann wenn er die ganze Zeile ausgeschrieben kriegt! :crying:

Nina

Hier ist mal mein ganzer Code! Vielleicht hilft das was!

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
memo.Lines.LoadFromFile(Pfadname)

          for i := 0 to memo.Lines.count-1 do  
          begin
               if memo.lines[i] = '   <RDF:li>'
               then begin
                    //posi := Pos('<RDF:li>', memo.lines.Strings[i]);
                    memo.lines.Delete(i);
           
               end;
          end; //for i....
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 09.05.03 15:10 
nina hat folgendes geschrieben:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
memo.Lines.LoadFromFile(Pfadname)

          for i := 0 to memo.Lines.count-1 do  
          begin
               if memo.lines[i] = '   <RDF:li>'
               then begin
                    //posi := Pos('<RDF:li>', memo.lines.Strings[i]);
                    memo.lines.Delete(i);
           
               end;
          end; //for i....

Dass du keinen Erfolg hast, wundert mich nicht. Du prüfst
ausblenden Quelltext
1:
if memo.lines[i] = '   <RDF:li>'					

sagst aber selbst, dass eine Zeile z.B. so aussehen kann
ausblenden Quelltext
1:
<RDF:li>www.google.de</RDF:li>					

Warum also nicht
ausblenden Quelltext
1:
if(pos('<RDF:li>',memo.lines[i]) > 0) then					

Ich würde aber rückwärts durch die Schleife gehen. Luckie hat hier übrigens auch den Grund dafür genannt.

< --- schnibbel ------------>

nina hat folgendes geschrieben:
Also mein Programm soll den Inhalt der Adressleiste aus dem Netscape und aus Mozilla löschen! Diese Einträge befinden sich in einer Datei mit der Endung .rdf.

Das dachte ich mir: XML. Die RDF-Dateien des Mozilla sind im XML-Format. Du solltest dich daher am besten mit einem Parser beschäftigen. Ab Delphi 6 ist eine XML-Komponente dabei. Bei älteren Delphi-Versionen kannst du z.B. die Typbibliothek von Microsoft oder einen anderen freien XML-Parser benutzen.

Der Vorteil: du kannst das Dokument mit seiner kompletten Struktur laden und alle Knoten mit dem Namen "<RDF:li/>" in eine interne Liste (Nodelist) laden. Du könntest dann alle gefundenen Knoten löschen.
Ist der Knotentext noch wichtig (etwa google), dann kannst du in einer simplen for-Schleife alle gefundenen Knoten durchlaufen und nur die entfernen, die die gewünschten Begriffe aufweisen. Dann speicherst du die Datei neu ab. Fertig.

Ich denke, diese Lösung ist weitaus eleganter als der Umweg über ein oder sogar zwei Memos.


Grüße.
nina Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 62



BeitragVerfasst: Fr 09.05.03 15:53 
Das mit dem

if memo.lines[i] = ' <RDF:li>'

habe später geändert und vergessen es im vorum zu ändern! Es hat aber trotzdem nicht funktioniert gehabt. Aber jetzt funzt es, denn es lag nur an der Schleife! :dance:

Oh Mann, war das eine schwere Geburt!

Vielen Danke noch mal an alle für Eure Hilfe und die Geduld für solche Leute wie mich, die an manchen Tagen echt auf dem Schlauch stehen :lol: !!! Sorry!

Nina
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: Sa 10.05.03 02:44 
Kein Problem. Wir haben alle mal klein angefangen ... und werden auch noch weiter wachsen. :wink: