Autor Beitrag
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 02.06.11 18:15 
user profile iconhussl1 hat folgendes geschrieben Zum zitierten Posting springen:
Heißt ich muss die betreffende Unit in mein Projektverzeichnis kopieren.
Habe ich davon etwas geschrieben? Nein, das ist nicht nötig. :nixweiss:

Im Gegenteil, es ist nicht sinnvoll. Es reicht den Pfad in den Optionen in den Bibliothekspfad aufzunehmen.

user profile iconhussl1 hat folgendes geschrieben Zum zitierten Posting springen:
Dann erstelle ich also ein Objekt der Klasse TVKDBFNTX

ausblenden Delphi-Quelltext
1:
  TFritzDBF = class(TVKDBFNTX)					
Du musst ein Objekt der Klasse erstellen und nicht eine eigene Klasse ableiten...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
private
  FDatabase: TVKDBFNTX;

...
// z.B. FormCreate
FDatabase := TVKDBFNTX.Create(Self);
FDatabse.Tablename := ...;
(Müsste TableName sein, sonst schau was es da sonst gibt...)
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Do 02.06.11 18:46 
danke für deine geduld. habe das nun so ausgeführt. Jetzt denke ich wäre es mal ein ziel das Packen zu probieren.
[/delphi]

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TFritzAdressliste.inFritzAdrSchreiben;
var
  i: integer;
  sqlstring, anzeigename, name, vorname, telefon, telefax: string;
  datensatz: TFritzAdresse;
  FritzDB : TVKDBFNTX;
begin
  // Leeren des vorhandenen Fritz-Adressbuches

  FritzDB := VKDBFDataSet.TVKDBFNTX.Create();
  FritzDB.DBFFileName('D:\DB_Routenplaner\access\FritzAdr.dbf');
  FritzDB.Pack(true);

...



Jetzt muss ich aber in der Create einen AOwner: TComponent einfügen. Was hat es denn damit auf sich ? Bei Self bringt er einen Fehler...

[Pascal Fehler] FritzAdrDaten.pas(182): E2010 Inkompatible Typen: 'TComponent' und 'TFritzAdressliste'


Gruß Matthias
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 02.06.11 19:26 
Wenn das eine eigene Klasse ist, schreib einfach nil statt Self hin. Dann musst du dein Objekt aber auch irgendwo mit Free wieder freigeben.
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Di 14.06.11 15:30 
Hallo jaenicke,

mit nil funktioniert das wunderbar... was mache ich aber mit diesem nil? Was hat das für eine Funktion? Wie gebe ich mein Objekt wieder frei? Mit Destroy?

ausblenden Delphi-Quelltext
1:
2:
3:
  FritzDB := VKDBFDataSet.TVKDBFNTX.Create(nil);
  FritzDB.DBFFileName := 'D:\DB_Routenplaner\access\FritzAdr.dbf';
  FritzDB.Pack(true);


Das macht er mal ohne Fehlermeldung durch, das ist doch schonmal was. Nur komme ich mit der Fülle an Funktionen und Prozeduren nicht zurecht.
Könntest du mir erläutern, mit welchen Befehlen ich nun die DBF leeren kann?

Vielen Dank,

Matthias
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 14.06.11 15:46 
user profile iconhussl1 hat folgendes geschrieben Zum zitierten Posting springen:
was mache ich aber mit diesem nil? Was hat das für eine Funktion?
Damit sagst du, dass das Objekt keinen Owner hat. du musst dich um die Freigabe also selbst kümmern.

user profile iconhussl1 hat folgendes geschrieben Zum zitierten Posting springen:
Wie gebe ich mein Objekt wieder frei? Mit Destroy?
Nein, das darf man nicht direkt aufrufen, benutze immer Free.
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Di 14.06.11 17:32 
Ok,

dann wäre das auch schon mal geklärt.

Ich dachte an so etwas wie:

ausblenden Delphi-Quelltext
1:
2:
  FritzDB.SetRange();
  FritzDB.ClearRange;


Nur ist mir nicht klar was ich da an Werten übergeben muss. Gibt es da eine Dokumentation oder kannst du mir da weiterhelfen?
ausblenden Delphi-Quelltext
1:
  FritzDB.SetRange(fieldlist: string; fieldvalues: array of TVarRec)					


Dazu gibt es noch 3 weitere Prozeduren mit gleichen Namen, aber mit anderen Paramtern.

Gruß

Matthias
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 14.06.11 17:43 
Damit änderst du ja nur die Range, mehr nicht.

So ca. sollte es gehen, keine Ahnung ob es da ne schnellere Lösung gibt, hab grad keine Zeit zum Nachschauen, bin auf Arbeit...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  VKDBFNTX1.AccessMode.OpenReadWrite := True;
  VKDBFNTX1.Active := True;
  while not VKDBFNTX1.Eof do
  begin
    VKDBFNTX1.Deleted := True;
    VKDBFNTX1.Next;
  end;
  VKDBFNTX1.Pack(False);
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Di 21.06.11 17:41 
Heyhey,

habe das so ausprobiert und siehe da:

Es funktioniert einwandfrei. Programm läuft flott und ohne Fehlermeldungen.
Leider ist dies zu schön um wahr zu sein...
Wenn ich das aktualisierte Adressbuch mit Fritz öffne, dann explodiert der Speicher.
Das Programm reagiert nicht mehr und der Arbeitspeicher schnellt nach oben (So um 30Mb pro Sekunde)
Woran könnte das denn liegen?
Genau das wollte ich verhindern, habe extra eine Originaldatei bearbeitet und nicht neu erstellt wie
vorgeschlagen wurde und dennoch...
Habe mal das aktualisierte Adressbuch mit einem Adressbuch verglichen bei dem die Importfunktion genutzt
wurde. Die sehen in Excel genau identisch aus. In der Spalte TRANSPROT haben dort auch alle Datensätze den Wert "A" hinterlegt.

Ich bin gerade echt am verzweifeln :(
Welche Infos könnte ich euch denn geben um da weiter zu kommen ?

PS: An jaenicke ein RIESIGES DANKESCHÖN dafür, dass du mir so geduldig erklärt und geholfen hast =)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 21.06.11 17:52 
Du könntest einmal ein Tool zum Vergleichen von Dateien benutzen und schauen worin sich die Dateien unterscheiden. Du kannst zum Beispiel den Hexeditor HxD dafür benutzen.
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 26.06.11 19:34 
Hallo,

habe das nun ausgeführt. Habe mit dem Programm Fritz!-Programm ein neues Adressbuch angelegt und mit 2 sinnlosen Einträgen gefüllt. Dann habe ich mein Programm so abgeändert, dass es das Adressbuch leert und dann die 2 sinnlosen EInträge erneut durchführt. Erstmal den Code:

ausblenden volle Höhe 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:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
procedure TFritzAdressliste.inFritzAdrSchreiben;
var
  i: integer;
  sqlstring, anzeigename, name, vorname, telefon, telefax: string;
  datensatz: TFritzAdresse;

begin


  // Fritz Adressbuch leeren

  FritzAdrleeren();

  mFormular.Form1.Memo1.Lines.Add('Schreibe Daten in Fritz-Adressbuch... Dies kann etwas dauern.');

      
        anzeigename := 'dfgdfg';
        name := 'fgfg';
        vorname := 'fgfgfg';
        telefon := '';
        telefax := '';
      sqlstring := 'INSERT INTO FritzAdr (BEZCHNG, NAME, VORNAME, TELEFON, TELEFAX, TRANSPROT)' +
      ' VALUES (''' +
      anzeigename +
      ''', ''' +
      name +
      ''', ''' +
      vorname +
      ''', ''' +
      telefon +
      ''', ''' +
      telefax +
      ''', ''A'');';

      // SQL-String in ADO löschen
      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

      // SQL-String in ADO schreiben

      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Add(sqlstring);

      // SQL-Abfrage Starten

      FritzAdrZugriff.DataModule2.ADOQuery1.ExecSQL;


        anzeigename := 'fgfgfgf';
        name := 'fgfgf';
        vorname := 'fgfg';
        telefon := '';
        telefax := '';
      sqlstring := 'INSERT INTO FritzAdr (BEZCHNG, NAME, VORNAME, TELEFON, TELEFAX, TRANSPROT)' +
      ' VALUES (''' +
      anzeigename +
      ''', ''' +
      name +
      ''', ''' +
      vorname +
      ''', ''' +
      telefon +
      ''', ''' +
      telefax +
      ''', ''A'');';

      // SQL-String in ADO löschen
      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

      // SQL-String in ADO schreiben

      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Add(sqlstring);

      // SQL-Abfrage Starten

      FritzAdrZugriff.DataModule2.ADOQuery1.ExecSQL;

  {
  // Zählen der vorzunehmenden Einträge
  i := Count;

  // Liste in Adressbuch schreiben

  While i-1>=0 do
    begin
      datensatz := TFritzAdresse(items[i-1]);
        anzeigename := datensatz.anzeigename;
        name := datensatz.name;
        vorname := datensatz.vorname;
        telefon := datensatz.telefon;
        telefax := datensatz.telefax;
      sqlstring := 'INSERT INTO FritzAdr (BEZCHNG, NAME, VORNAME, TELEFON, TELEFAX, TRANSPROT)' +
      ' VALUES (''' +
      anzeigename +
      ''', ''' +
      name +
      ''', ''' +
      vorname +
      ''', ''' +
      telefon +
      ''', ''' +
      telefax +
      ''', ''A'');';

      // SQL-String in ADO löschen
      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

      // SQL-String in ADO schreiben

      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Add(sqlstring);

      // SQL-Abfrage Starten

      FritzAdrZugriff.DataModule2.ADOQuery1.ExecSQL;

      i := i-1;

    end;


Das funktioniert nun auch soweit. Habe dann das erwähnte Tool installiert und die Originaldatei mit der bearbeiteten verglichen. Und siehe da: Ein winziger Unterschied ist vorhanden!

Die Original-DBF-Datei:

ausblenden Quelltext
1:
03 6F 06 15 02 00 00 00 81 02 6E 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 42 45 5A 43 48 4E 47 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 46 49 52 4D 41 00 00 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 41 4D 45 00 00 00 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 4F 52 4E 41 4D 45 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 42 54 45 49 4C 55 4E 47 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 54 52 41 53 53 45 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 4C 5A 00 00 00 00 00 00 00 00 43 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4F 52 54 00 00 00 00 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4B 4F 4D 4D 45 4E 54 00 00 00 00 43 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 45 4C 45 46 4F 4E 00 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 4F 42 49 4C 46 4F 4E 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 45 4C 45 46 41 58 00 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 52 41 4E 53 46 45 52 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 45 4E 55 54 5A 45 52 00 00 00 43 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 41 53 53 57 4F 52 54 00 00 00 43 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 52 41 4E 53 50 52 4F 54 00 00 43 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 4F 54 49 5A 45 4E 00 00 00 00 43 00 00 00 00 FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 4D 41 49 4C 00 00 00 00 00 00 43 00 00 00 00 FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 4F 4D 45 50 41 47 45 00 00 00 43 00 00 00 00 FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 20 64 66 67 64 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 66 67 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1A					


Und die bearbeitete Datei:

ausblenden Quelltext
1:
03 6F 06 1A 02 00 00 00 81 02 6E 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 42 45 5A 43 48 4E 47 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 46 49 52 4D 41 00 00 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 41 4D 45 00 00 00 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 4F 52 4E 41 4D 45 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 42 54 45 49 4C 55 4E 47 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 54 52 41 53 53 45 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 4C 5A 00 00 00 00 00 00 00 00 43 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4F 52 54 00 00 00 00 00 00 00 00 43 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4B 4F 4D 4D 45 4E 54 00 00 00 00 43 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 45 4C 45 46 4F 4E 00 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4D 4F 42 49 4C 46 4F 4E 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 45 4C 45 46 41 58 00 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 52 41 4E 53 46 45 52 00 00 00 43 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 45 4E 55 54 5A 45 52 00 00 00 43 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 41 53 53 57 4F 52 54 00 00 00 43 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 52 41 4E 53 50 52 4F 54 00 00 43 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E 4F 54 49 5A 45 4E 00 00 00 00 43 00 00 00 00 FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 4D 41 49 4C 00 00 00 00 00 00 43 00 00 00 00 FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 4F 4D 45 50 41 47 45 00 00 00 43 00 00 00 00 FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 20 64 66 67 64 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 66 67 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 67 66 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1A					


Unterschied findet sich in der ersten Zeile, vierter Block: 1A statt 15

Nun zum Abschluss noch der Vergleich der dazugehörenden MDX-Dateien ergibt:

"Die ausgewählten Dateien sind identisch."

So, nun die Frage: Kann das dieser süße kleine Unterschied sein ? =) Wenn ja, was mache ich nun ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 26.06.11 19:39 
Das ist der Tag (1A, also der 26.) des letzten Zugriffs. Also nichts wirklich wichtiges. :nixweiss:

Zur Erklärung:
Das erste Byte gibt an, dass es eine DBase III+ Datei ist, danach kommen Jahr, Monat und Tag als jeweils ein Byte.

Einzige Erklärung, die mir einfällt:
Fritz speichert noch woanders das Datum und kommt nicht damit klar, dass es nicht übereinstimmt.
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 26.06.11 20:51 
Hmm... habe aber nun festgestellt, dass beide Datein in Fritz funktionieren.
Vielleicht sind das dem Prgramm einfach zuviele Datensätze.
Wenn ich Fritz mit der veränderten Datenbank starte, so schnellt der RAM-Bedarf des Prozesses auf 1900Mb an und fällt dann auf 350Mb wo er sich stabilisiert. Dann wird die Fehlermeldung "Nicht genügend Speicher" angezeigt. Die CPU wird zu 25% belegt, bleibt nach der Fehlermeldung bei 0%.
Die von meinem Programm aktualisierte Datenbank hat 5907 Einträge. Habe aus Spaß einige txt-Dateien mit Daten importiert. Habe so eine Datenbank mit 7953 Einträgen gefüllt und es läuft. Werde mal weitere Datenbanken erstellen lassen und mit einigen Dingen spielen... Ich erstatte Bericht. Über weitere Anregungen würde ich mich freuen. =)
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 26.06.11 23:36 
so ich glaube ich habe einen fehler gefunden!!!

ich meine dieser liegt in der MDX-Datei... (warum auch immer man die braucht).
Die Datei verändert sich beim Füllen... Wenn ich danach die Prozedur
zum Leeren der Datenbank früber laufen lasse, dann sind danach alle Einträge
verschwunden. Auch die Dateigröße passt (von 9,5Mb auf wenige Kb). Die mdx hat
dann allerdings immernoch etwa 1Mb. Das sollte doch nicht so sein, oder ?
Das würde erklären, warum mein Dateivergleich nichts gebracht hat.

Habe nun folgendes gemacht:

- Originaldatei erstellt (mit den 2 sinnlosen Einträgen)
- Mit dem Delphi-Prog geleert

Die DBF wird geleert, an der MDX ändert sich nichts!

Das kann doch nicht richtig sein oder ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 27.06.11 05:33 
Schau mal, ob es eine Methode ReIndex oder so gibt. In dieser Datei ist nämlich der Index untergebracht.
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 27.06.11 20:33 
Hey,

habe ich gemacht. Habe ausprobiert:

ausblenden Delphi-Quelltext
1:
2:
3:
ReIndex();
Reindexall();
Reindexwithoutactivated();


bleibt aber ohne auswirkungen :(
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: So 03.07.11 15:43 
Hallo zusammen,

habe nun nochmals etwas an dem Code geändert. Habe nun auf die Prozedur die das Adressbuch leeren soll verzichtet. Stattdessen kopiere ich einfach ein leeres Adressbuch.
Hier der Code:

ausblenden volle Höhe 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:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
procedure TFritzAdressliste.FritzAdrDateiUeberschreiben;
var
  FritzDB : TVKDBFNTX;
  einstellungen: TEinstellungen;
  quelle, ziel: string;
begin
  // Leeren des vorhandenen Fritz-Adressbuches
  mFormular.Form1.Memo1.Lines.Add('Leere vorhandenes Fritz-Adressbuch.');

  //Lade Pfäde für DBF

  einstellungen := TEinstellungen.Create;

  ziel := einstellungen.GetPfad_fritz() + '\FritzAdr.dbf';
  quelle := einstellungen.GetPfad_home() + 'FritzAdr.dbf';

  // Kopiere DBF

  CopyFile(PChar(quelle),PChar(ziel),false);


  //Lade Pfäde für MDX

  einstellungen := TEinstellungen.Create;

  ziel := einstellungen.GetPfad_fritz() + '\FritzAdr.mdx';
  quelle := einstellungen.GetPfad_home() + 'FritzAdr.mdx';

  // Kopiere MDX

  CopyFile(PChar(quelle),PChar(ziel),false);


  {Version 1.0 - Fehler, Index-Datei wurde nicht angepasst// Dateipfad laden
  einstellungen := TEinstellungen.Create;
  // Objekt für Adressbuch anlegen
  FritzDB := VKDBFDataSet.TVKDBFNTX.Create(nil);
  FritzDB.DBFFileName := einstellungen.getPfad_fritz() + '\FritzAdr.dbf';
  // Einstellungen wieder freigeben
  einstellungen.destroy;
  FritzDB.AccessMode.OpenReadWrite := True;
  FritzDB.Active := True;
  while not FritzDB.Eof do
  begin
    FritzDB.Deleted := True;
    FritzDB.Next;
  end;
  FritzDB.Pack(False);
  // Index-Datei
  FritzDB.Reindex;
  FritzDB.ReindexAll;
  FritzDB.Pack(False);
  FritzDB.ReindexWithOutActivated;
  FritzDB.Refresh;
  FritzDB.Pack(False);
  //Objekt freigeben
  FritzDB.Free();  }


  mFormular.Form1.Memo1.Lines.Add('Leeren des vorhandenen Fritz-Adressbuchs beendet.')

end;


Das Problem mit der MDX scheint also gelöst. Fritz hängt sich aber denoch auf! Habe dann weiter probiert und folgendes festgestellt. Füge ich 121 Datensätze ein funktioniert alles ohne Probleme. Sind es 122 hängt sich alles auf... Ich kann danach aber im Fritz-Programm beliebig viele Datensätze hinzufügen.
Was kann das nun sein?

ausblenden volle Höhe 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:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
procedure TFritzAdressliste.inFritzAdrSchreiben;
var
  i: integer;
  sqlstring, anzeigename, name, vorname, telefon, telefax: string;
  datensatz: TFritzAdresse;

begin


  // Fritz Adressbuch überschreiben

  FritzAdrDateiUeberschreiben();

  mFormular.Form1.Memo1.Lines.Add('Schreibe Daten in Fritz-Adressbuch... Dies kann etwas dauern.');

  // Zählen der vorzunehmenden Einträge
  i := 121;//Count;

  // Liste in Adressbuch schreiben

  While i-1>=0 do
    begin
      datensatz := TFritzAdresse(items[i-1]);
        anzeigename := datensatz.anzeigename;//'anzeige' + inttostr(i);//datensatz.anzeigename;
        name := datensatz.name;
        vorname := datensatz.vorname;
        telefon := datensatz.telefon;
        telefax := datensatz.telefax;
      sqlstring := 'INSERT INTO FritzAdr (BEZCHNG, NAME, VORNAME, TELEFON, TELEFAX, TRANSPROT)' +
      ' VALUES (''' +
      anzeigename +
      ''', ''' +
      name +
      ''', ''' +
      vorname +
      ''', ''' +
      telefon +
      ''', ''' +
      telefax +
      ''', ''A'');';

      // SQL-String in ADO löschen
      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

      // SQL-String in ADO schreiben

      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Add(sqlstring);

      // SQL-Abfrage Starten

      FritzAdrZugriff.DataModule2.ADOQuery1.ExecSQL;

      i := i-1;

    end;

    FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

  {// Zählen der vorzunehmenden Einträge
  i := Count;

  // Liste in Adressbuch schreiben

  While i-1>=0 do
    begin
      datensatz := TFritzAdresse(items[i-1]);
        anzeigename := datensatz.anzeigename;
        name := datensatz.name;
        vorname := datensatz.vorname;
        telefon := datensatz.telefon;
        telefax := datensatz.telefax;
      sqlstring := 'INSERT INTO FritzAdr (BEZCHNG, NAME, VORNAME, TELEFON, TELEFAX, TRANSPROT)' +
      ' VALUES (''' +
      anzeigename +
      ''', ''' +
      name +
      ''', ''' +
      vorname +
      ''', ''' +
      telefon +
      ''', ''' +
      telefax +
      ''', ''A'');';

      // SQL-String in ADO löschen
      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

      // SQL-String in ADO schreiben

      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Add(sqlstring);

      // SQL-Abfrage Starten

      FritzAdrZugriff.DataModule2.ADOQuery1.ExecSQL;

      i := i-1;

    end;

    FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;          }


      mFormular.Form1.Memo1.Lines.Add('Schreiben der Daten in Fritz-Adressbuch beendet.');

end;


Habe auch Haltepunkte gesetzt und geschaut ob es vllt am Datensatz liegt. Aber auch wenn ich alles überschreibe kommt der Fehler...

Wäre es vllt sinnvoller Fritz über SendKeys oder so zu steuern um dann eine mit meinem Programm erstellte CSV zu importieren?
Was sollte ich nun tun? Wie kann ich das Ganze weiter eingrenzen? Mir fehlt da die Erfahrung, weiß nicht wie ich weiter machen soll :(

Edit:

Wenn ich in den Anzeigename einen belibigen Wert vorgebe z.B.

ausblenden Delphi-Quelltext
1:
anzeigename := test + inttostr(i);					


so läuft das Programm bis 10 000 ohne Probleme...


Gruß

Matthias
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 07.10.11 11:45 
Hallo zusammen nun läuft alles soweit...

Das Programm läuft wenn ich für das Feld Anzeigename folgende Werte vergebe(i ist die laufende Nummer der Datensätze):

ausblenden Delphi-Quelltext
1:
anzeigename := inttostr(i) + datensatz.anzeigename;					


Gebe ich aber zum Beispiel folgendes an:

ausblenden Delphi-Quelltext
1:
anzeigename := datensatz.anzeigename + inttostr(i);					

oder

ausblenden Delphi-Quelltext
1:
anzeigename := 'A' + datensatz.anzeigename + inttostr(i);					


hängt das Programm wieder wie bereits zuvor beschrieben.
Duplikate können da ja nicht das Problem sein, oder? Schließlich hat i immer einen anderen Wert und somit muss jeder Eintrag individuell sein, egal ob i vorne oder hinten steht. Weiß einer von euch Rat warum Fritz mit i am Anfang ohne Problem funktioniert und sonst nicht?
Bin für jeden Ansatz dankbar, ich probiere alles aus aber jetzt sind mir echt die Ideen ausgegangen in welche Richtung meine Versuche nun gehen sollen....

Danke für eure Hilfe

Hier nochmal der Code:

ausblenden volle Höhe 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:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
procedure TFritzAdressliste.inFritzAdrSchreiben;
var
  i: integer;
  sqlstring, anzeigename, name, vorname, telefon, telefax: string;
  datensatz: TFritzAdresse;

begin


  // Fritz Adressbuch überschreiben

  FritzAdrDateiUeberschreiben();

  mFormular.Form1.Memo1.Lines.Add('Schreibe Daten in Fritz-Adressbuch... Dies kann etwas dauern.');

  // Zählen der vorzunehmenden Einträge
  i := Count;

  // Liste in Adressbuch schreiben

  While i-1>=0 do
    begin
      datensatz := TFritzAdresse(items[i-1]);
        anzeigename := inttostr(i) + ' ' + datensatz.anzeigename;//'anzeige' + inttostr(i);//datensatz.anzeigename;
        name := datensatz.name;
        vorname := datensatz.vorname;
        telefon := datensatz.telefon;
        telefax := datensatz.telefax;
      sqlstring := 'INSERT INTO FritzAdr (BEZCHNG, NAME, VORNAME, TELEFON, TELEFAX, TRANSPROT)' +
      ' VALUES (''' +
      anzeigename +
      ''', ''' +
      name +
      ''', ''' +
      vorname +
      ''', ''' +
      telefon +
      ''', ''' +
      telefax +
      ''', ''A'');';

      // SQL-String in ADO löschen
      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

      // SQL-String in ADO schreiben

      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Add(sqlstring);

      // SQL-Abfrage Starten

      FritzAdrZugriff.DataModule2.ADOQuery1.ExecSQL;

      i := i-1;

    end;

    FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

  {// Zählen der vorzunehmenden Einträge
  i := Count;

  // Liste in Adressbuch schreiben

  While i-1>=0 do
    begin
      datensatz := TFritzAdresse(items[i-1]);
        anzeigename := datensatz.anzeigename;
        name := datensatz.name;
        vorname := datensatz.vorname;
        telefon := datensatz.telefon;
        telefax := datensatz.telefax;
      sqlstring := 'INSERT INTO FritzAdr (BEZCHNG, NAME, VORNAME, TELEFON, TELEFAX, TRANSPROT)' +
      ' VALUES (''' +
      anzeigename +
      ''', ''' +
      name +
      ''', ''' +
      vorname +
      ''', ''' +
      telefon +
      ''', ''' +
      telefax +
      ''', ''A'');';

      // SQL-String in ADO löschen
      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;

      // SQL-String in ADO schreiben

      FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Add(sqlstring);

      // SQL-Abfrage Starten

      FritzAdrZugriff.DataModule2.ADOQuery1.ExecSQL;

      i := i-1;

    end;

    FritzAdrZugriff.DataModule2.ADOQuery1.SQL.Clear;          }


      mFormular.Form1.Memo1.Lines.Add('Schreiben der Daten in Fritz-Adressbuch beendet.');

end;
hussl1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mi 26.10.11 16:50 
Hallo liebe Leute,

habe nun mit AVM gesprochen und denen mal mein Fehlerbild geschildert.
Die sagen mir folgendes:

ZITAT:

vielen Dank für Ihre Anfrage an den AVM-Support.

Dieses Problem kann dann auftreten, wenn der Pfad zur Datenbankdatei des FRITZ!adressbuchs (Standard-Datenbankdatei FRITZ!ADR.DBF) auf eine nicht vorhandene Datei bzw. ein nicht vorhandenes Verzeichnis verweist oder das betreffende Windows Benutzerkonto (Account) keine Zugriffsrechte für das Verzeichnis hat, in dem sich die Datei FRITZADR.DBF befindet.

Bitte gehen Sie zur Behebung des auf Ihrem System bestehenden Problems daher wie folgt vor:

1) Den Pfad zur Datenbankdatei des FRITZ!adressbuchs in der Windows Registry berichtigen:

- "Start / Ausführen" hier regedit eingeben,
- unter HKEY_CURRENT_USER/Software/AVM/FRITZ! 2.0/ Adr/ den Eintrag "Dateiname" markieren,
- rechten Mausklick, dann "Ändern" und unter "Wert" den absoluten Pfad zur gewünschten Datenbankdatei eintragen,
- Bestätigen mit "OK" und Registry schließen,
- Neustart des Computers.

2) Zugriffsberechtigungen für den Ordner, der die Datei FRITZADR.DBF enthält, überprüfen und ggf. den fraglichen Benutzer oder seine Benutzergruppe hinzufügen:

- Anmelden mit Administratoraccount und den Windows-Explorer öffnen,
- Ordner mit der Datei FRITZADR.DBF markieren > rechte Maustaste, dann auf "Eigenschaften / Freigabe",
- hier die Option "Diesen Ordner freigeben" wählen und über die Schaltflächen "Berechtigungen / Hinzufügen" den gewünschten Benutzer oder seine Benutzergruppe hinzufügen.

ZITAT ENDE

Die Hinweise zum Abarbeiten bringen mir nichts, vllt kann man aber Rückschlüsse darauf ziehen dass mein Code in dem Zusammenhang was verbockt. Was könnte das sein?

Über Anregungen würde ich mich sehr freuen.... -.-