Array Datensätze Vergleichen

  • Hallo Leute,

    ich bins mal wieder Madcatz ;)

    Ich habe ein Problem bezüglich Arrays:

    Mein Haupt-Array sieht folgendermaßen aus:

    Titel | Jahr | Qualität | Sound

    Momentan sieht es so, dass ich Abfrage, wie viele Einträge das Array hat und schreibe die Anzahl in eine Ini-Datei nach folgendem Schema: Anzahl = "leer"
    Das "leer" trage ich immer ein.

    Jetzt würde ich gerne die Daten aus der Ini-Datei, jeweils nur die Anzahl, in ein weiteres 1D Array Laden und die jeweils letzten beiden Einträge vergleichen, ob die gleich groß sind und wenn dem nicht so ist, soll mein Tool das HAupt-Array wieder öffnen und die Titel aus der jeweils entstandenden Differenz enxtrahieren.


    Sprich beim ersten Start habe ich

    142 Titel

    beim zweiten Start habe ich

    145 Titel

    also müssen die Titel von 143 bis 145 extrahiert werden.


    Kann mir vielleicht jemand behilflich sein, damit ich weiß, wie ich vorgehen muss?


    Viele Grüße,

    MadCatz

  • Moin moin.

    1.) Hast du bereits ein Skript, wenn ja bitte mit zur Verfügung stellen.
    2.) Info: Du nutzt als Hauptarray ein 2D-Array.

    schreibe die Anzahl in eine Ini-Datei nach folgendem Schema: Anzahl = "leer"
    Das "leer" trage ich immer ein.

    Was macht das für einen Sinn? Wenn du die Anzahl abfragst, aber diese Information gar nicht nutzt?

    Jetzt würde ich gerne die Daten aus der Ini-Datei, jeweils nur die Anzahl, in ein weiteres 1D Array Laden und die jeweils letzten beiden Einträge vergleichen

    Ich denke du schreibst immer "leer" rein?

    ob die gleich groß sind und wenn dem nicht so ist, soll mein Tool das HAupt-Array wieder öffnen und die Titel aus der jeweils entstandenden Differenz enxtrahieren.

    Wenn dich explizit nur zwei Werte der Ini-Datei interessieren, ist es nicht zwingend notwendig, dass du zum einen alle Werte ausliest, und zum anderen ein Array dafür nutzt. Zwei Variablen würde ich persönlich lieber nutzen als in Array mit 2 Werten. Aber das ist für die Grundidee ja nicht so wild.


    Sprich beim ersten Start habe ich

    142 Titel

    beim zweiten Start habe ich

    145 Titel

    also müssen die Titel von 143 bis 145 extrahiert werden

    Du musst somit zwei Schleifen bauen, und mit jedem Element aus Array A das Array B durchsuchen. Jetzt kann man um des Laufzeit Willens sagen, wenn ich einen Eintrag im Array 2 gefunden habe, dann lösche ich dieses Element aus dem Array, damit das Array schrumpft und die Anzahl der Schleifendurchläufe kleiner wird. Ich persönlich finde solche stunts prinzipiell immer doof, weil ich einfach glaube mit mehr Zeit für die Planung kriegt man oftmals viel effektivere Lösungen hin. Aber das ist ja wieder nen anderer Punkt. Übrig bleiben würde jedenfalls ein Array B mit allen Inhalten, die es in A nicht gibt.

    Edit: Hier noch eine Mischung aus Pseude/AutoIt Code. Mein Rechner will grad nicht wie ich, kann keine eckigen Klammern etc. schreiben :rofl:

    Grüße Yaerox

    Grüne Hölle

    2 Mal editiert, zuletzt von Yaerox (14. Januar 2016 um 11:23)

  • Damit man das beantworten kann musst Du Deine Fragen besser stellen. Sind die Arrays von vorne bis hinten gleich? also:
    Array_1[0] bis array_1[142] = array_2[0] bis array_2[142] ? Oder muss man die Arrays von [0] bis [142] auf Gleichheit prüfen?

    So recht versteht man Dein Problem nicht?


    Gruß

    Peter


    Ps: Wer sein Problem strukturiert beschreibt findet oftmals die Lösung selbst.

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hi Leute,

    ich hab das Problem gestern noch alleine gelöst :)
    Musste mir mal den Kopf frei schreiben, und quasi anderen mein Problem erklären, damit ich wusste wie ich es lösen kann :)

    Mein fertigest Script werde ich euch heute Mittag noch reinstellen, damit ihr wisst, wie ich es gelöst habe :)


    Ich danke euch das ihr euch die Zeit genommen habt, um mir zu Antworten ;)

    Vielen Dank

  • Läuft, muss natürlich noch Sinvoll in eine Funktion gepackt werden, da ich den Code noch mehrmals verwenden werden muss, hier wird er a scon 2x verwendet


    Schließe jetzt den Beitrag ;)