![]() |
2 INI Dateien vergleichen
Hallo zusammen,
ich habe 2 kleine Datenbanken (enthält Artikel und Bestände, Lagerorte etc...) als INI-Datei. Eine Lokale Datenbank L und eine Remote Datenbank R. Ich möchte nun die 2 Datenbanken vergleichen, d.h. die Remote DB soll in der Lokalen DB nachsehen ob die Artikelnummer existiert. Wenn nicht soll sie aktualisiert werden, d.h. der Eintrag wird zugefügt. Und genau bei dieser Umsetzung komme ich nicht weiter. Mein Ansatz, in dem ich 2 for to do schleifen einsetze funktioniert nicht, denn wenn die Artikelnummer in einer Datenbank mit 168 Einträgen schon existiert tut er so als gibt es diese Artikelnummer 167x nicht aber 1x schon --> er legt also 167 neue Datensätze an? Hat wer eine Idee? |
AW: 2 INI Dateien vergleichen
Doch, das mit der Schleife funktioniert schon, aber du mußt erst alles durchsehn (bei der inneren Prüf-Schleife), ob es das gibt
und danach kannst du dann entsprechend reagieren. Vorher eine Variable setzen, bei Fund deren Status ändern und dann die Variable auswerten. |
AW: 2 INI Dateien vergleichen
Schau dir doch mal in der Online-Hilfe an, was
![]() PS Die eigentliche Frage an die Ini-Datei ist ja: "Existiert der Eintrag xy schon?" |
AW: 2 INI Dateien vergleichen
ja genau die innere Schleife ist mein Problem:
sie geht gerade 168 Artikel durch Bsp. die Artikelnummer 4711 soll gesucht werden die innere Schleife sagt dann 167 x gibts nicht und 1x gibts doch. wie lasse ich diese inner Schleife durch die gesamte Datei laufen bzw. setze eine Finde-Variable?
Delphi-Quellcode:
for L := 1 to strtoint(DB_Lokal_index_read) do
begin // pfad definieren ini:=Tinifile.create(einstellungen.artikelreg); DB_Lokal_artikelnummer:= ini.readstring(inttostr(L), 'artikelnummer', DB_Lokal_artikelnummer); if (DB_Lokal_artikelnummer='-1')or (DB_Lokal_artikelnummer='') then DB_Lokal_artikelnummer:='0'; // nummern vergleichen if (RDB_artikelnummer=DB_Lokal_artikelnummer) then begin break end; end; |
AW: 2 INI Dateien vergleichen
Ok, der Wink mit dem Zaunpfahl war wohl zu wenig, jetzt halt mit dem ganzen Zaun wedeln:
![]() |
AW: 2 INI Dateien vergleichen
ist ini.valueExists wirklich richtig?
meine ini-Datenbank ist so aufgebaut: [1] artikelnummer=4711 [2] artikelnummer=01234567 [3] artikelnummer=106 in den Beschreibungen steht, dass ValueExisis einen Schlüssel sucht, also guckt er, ob "artikelnummer" existiert? ich checks net... |
AW: 2 INI Dateien vergleichen
Ja valueExists prüft ob artikelnummer existiert, alternativ möchtest du vielleicht vorher per sectionExists prüfen ob [1], [2] oder [3] existieren.
|
AW: 2 INI Dateien vergleichen
Das funktioniert aber nur, wenn die Artikelnummern in beiden INI-Dateien auch immer in der gleichen Section stehen.
Wenn sowas vorkommt: INI1: Zitat:
Zitat:
|
AW: 2 INI Dateien vergleichen
Mein Problem ist in der "if then else" Abfrage folgendes:
if lokale_artilenummer=remote_artikelnummer then break --> ok funktioniert, wenn der Artikel existiert, dann keinen neuen Datensatz anlegen aber im else Teil passiert folgendes: er vergleicht wieder und stellt fest dass 4711 nicht 106 ist --> also würde er 4711 neu anlegen, weil er nicht weiß, dass der Artikel noch kommt tabelle 1 tabelle 2 --------- --------- 4711 --> 106 ==> 4711 ungleich 106 -> neuen Datensatz anlgen ............. 4711 ............. 01234567 ich hab keinen Plan wie ich das lösen soll, hat jemand dazu vielleicht einen Quellcode? |
AW: 2 INI Dateien vergleichen
ReadSections
ReadSectionValues |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz