AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

2 INI Dateien vergleichen

Ein Thema von Dr. Jack · begonnen am 2. Aug 2012 · letzter Beitrag vom 8. Aug 2012
Antwort Antwort
Seite 1 von 2  1 2      
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

2 INI Dateien vergleichen

  Alt 2. Aug 2012, 19:01
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 19:08
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 19:11
Schau dir doch mal in der Online-Hilfe an, was Delphi-Referenz durchsuchenTIniFile so zur Verfügung stellt

PS Die eigentliche Frage an die Ini-Datei ist ja: "Existiert der Eintrag xy schon?"
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#4

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 19:32
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;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 19:42
Ok, der Wink mit dem Zaunpfahl war wohl zu wenig, jetzt halt mit dem ganzen Zaun wedeln:
Delphi-Referenz durchsuchenTIniFile.ValueExists
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#6

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 22:47
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...
  Mit Zitat antworten Zitat
DanielProgramming
(Gast)

n/a Beiträge
 
#7

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 22:56
Ja valueExists prüft ob artikelnummer existiert, alternativ möchtest du vielleicht vorher per sectionExists prüfen ob [1], [2] oder [3] existieren.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#8

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 23:03
Das funktioniert aber nur, wenn die Artikelnummern in beiden INI-Dateien auch immer in der gleichen Section stehen.

Wenn sowas vorkommt:

INI1:
Zitat:
[1]
artikelnummer=4711
[2]
artikelnummer=01234567
[3]
artikelnummer=106
INI2:
Zitat:
[1]
artikelnummer=4711
[2]
artikelnummer=106
[3]
artikelnummer=01234567
nutzt ValueExists leider nichts.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Dr. Jack

Registriert seit: 17. Mär 2010
78 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#9

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 23:30
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?

Geändert von Dr. Jack ( 2. Aug 2012 um 23:32 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: 2 INI Dateien vergleichen

  Alt 2. Aug 2012, 23:40
ReadSections

ReadSectionValues
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:20 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