Entwickler-Ecke

Open Source Projekte - BookmarkChecker


Delete - Di 09.03.04 05:11
Titel: BookmarkChecker
So, der BookmarkChecker ist fertig und liegt mit Source vor.

Man kann mit ihm die Bookmarks / Favoriten des IE überprüfen oder die Bookmarkdatei eines anderen Browsers. Er stellt dann eine Liste zusammen mit den nicht zu erreichenden Links, welche man dann auswählen und dann löschen lassen kann .

Download: BookmarkChecker [http://www.luckie-online.de/Downloads/BookmarkChecker1_0.zip] [330 KB]

An einen Moderator: Das entsprechende Topic in der Freeware-Sparte kann dann geschlossen werden.


Tino - Di 09.03.04 10:03

Hallo Luckie,

ich habe Dein Programm gerade mit meiner exportierten Lesezeichendatei von Opera getestet. Gefunden hat dein Programm allerdings keinen einizigen Link in der Datei. Der Grund ist wohl der das du beim Auswerten der Datei (in der Procedure ExtractBookmarksFromFile) als Endmarkierung das doppelte Anführungszeichen plus ein Leerzeichnen verwendest:

Delphi-Quelltext
1:
2:
3:
const
  BEGINLINK = 'HREF="';
  ENDLINK = '" ';

In meiner Datei sind aber die Links wie folgt definiert:

Quelltext
1:
<a href="http://www.delphi-forum.de">Index</a></dd>                    

Ist das jetzt absichtlich das du nach einem Leerzeichen suchst?

Gruß
Tino


Delete - Di 09.03.04 14:03

Wie kommt denn das Leerzeichen dahin? :shock:

Hehe, es hat mit Mozilla und IE geklappt, weil die eins an der Stelle haben. Werde es korrigieren.

Bitte noch mal testen. ;)


Tino - Di 09.03.04 14:38

Zustätzlich würde ich beim suchen des Beginlink nicht auf Groß- / Kleinschreibung achten. Beim der Exportdatei von Opera ist die href Angabe in Kleinbuchtaben.

Hab die Funktion wie folgt geändert... dann klappt es auch mit der Opera-Export-Datei :-)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
procedure ExtractBookmarksFromFile(BookmarkFile: string; Bookmarks: TStrings);
const
  BEGINLINK = 'HREF="';
  ENDLINK = '"';
var
  F: TextFile;
  s: string;
  StartPos, EndPos: Integer;
begin
  AssignFile(F, BookmarkFile);
{$I-}
  Reset(F);
{$I+}
  if IOResult = 0 then
  begin
    while not EOF(F) do
    begin
      readln(F, s);
      StartPos := AnsiPos(BEGINLINK, Uppercase (s));
      if StartPos > 0 then
      begin
        Delete (s, 1, StartPos + Length (BEGINLINK) -1);
        EndPos := AnsiPos(ENDLINK, s);
        if EndPos > 0 then
        begin
          Delete (S, EndPos, Length (S));
          If length(s) > 0 then
            Bookmarks.Add(s);
        end;
      end;
    end;
    CloseFile(F);
  end;
end;


Delete - Di 09.03.04 14:56

Oh, danke. :thumb:


Delete - Fr 12.03.04 03:00

OK. So ist es jetzt eingebaut:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
{------------------------------------------------------------------------------}
{  Extracts the links from the bookmarkfile                                    }
{                                                                              }
{  Modified by Tino Teuber                                                    }
{------------------------------------------------------------------------------}

procedure ExtractBookmarksFromFile(BookmarkFile: string; Bookmarks: TStrings);
const
  BEGINLINK = 'HREF="';
  ENDLINK = '"';
var
  F: TextFile;
  s: string;
  StartPos, EndPos: Integer;
begin
  AssignFile(F, BookmarkFile);
{$I-}
  Reset(F);
{$I+}
  if IOResult = 0 then
  begin
    while not EOF(F) do
    begin
      readln(F, s);
      StartPos := AnsiPos(BEGINLINK, Uppercase (s));
      if StartPos > 0 then
      begin
        Delete (s, 1, StartPos + Length (BEGINLINK) -1);
        EndPos := AnsiPos(ENDLINK, s);
        if EndPos > 0 then
        begin
          Delete (S, EndPos, Length (S));
          If length(s) > 0 then
            Bookmarks.Add(s);
        end;
      end;
    end;
    CloseFile(F);
  end;
end;