2 CSV Dateien Datensätze Vergleichen und auf Konsole ausgeben
-
@apussaih sagte in 2 CSV Dateien Datensätze Vergleichen und auf Konsole ausgeben:
@It0101 Ja, ich prüfe zuerst ob die Datei wirklich existiert und wenn ja, dann geht es weiter oder ist das falsch?
Macht es denn einen Sinn dann weiter zu manchen? Habe erhlich noch nicht drüber geguckt. Kann ja sein das auch mit leeren Datensätzen begonnen werden kann...
-
@apussaih sagte in 2 CSV Dateien Datensätze Vergleichen und auf Konsole ausgeben:
@It0101 Ja, ich prüfe zuerst ob die Datei wirklich existiert und wenn ja, dann geht es weiter oder ist das falsch?
Ja, aber du willst ja Daten einlesen. Stellst dann fest, die Datei existiert nicht und versuchst dann trotzdem aus der nicht existierenden Datei Daten einzulesen. Denk mal drüber nach, ob das so Sinn macht
-
Dieser Beitrag wurde gelöscht!
-
@apussaih sagte in 2 CSV Dateien Datensätze Vergleichen und auf Konsole ausgeben:
@It0101 soll ich das Prüfen, ob die Daeti existiert in eine eigene Methode legen?
Und wenn es ie gibt, dann eine neue Methode um sie aufzurufen und dann mit ihr weiter arbeiten?Das musst du wissen. Wenn die Dateien existieren müssen weil das Programm sonst unsinnig wäre bleibt ja nur mit Fehlermeldung auszusteigen...
-
Dieser Beitrag wurde gelöscht!
-
@apussaih
Ne, du gibst ´ne Fehlermeldung aus und machst dann fröhlich weiter als ob nichts passiert wäre.
-
@apussaih sagte in 2 CSV Dateien Datensätze Vergleichen und auf Konsole ausgeben:
@It0101 soll ich das Prüfen, ob die Daeti existiert in eine eigene Methode legen?
Und wenn es ie gibt, dann eine neue Methode um sie aufzurufen und dann mit ihr weiter arbeiten?Dein Quellcode wird aber von anderen geprüft und deren Checkliste wird etwas länger sein und die werden nicht nur darauf schauen ob der Quellcode tut was er soll, was vielleicht durch Zufall sogar passieren könnte.
-
Hier zum Beispiel liest du Daten aus einem String aus. Und das machst du mehrmals hintereinander. Jedes mal fast genau das gleiche mit minimalen Unterschieden. Da wäre es aus meiner Sicht angebracht, wenn du diesen Block in eine Funktion auslagerst und diese dann mehrmals mit jeweils unterschiedlichen Parametern aufrufst.
//Hole Ref end = line.find(';', start); int stringlaenge = end - start; std::string ref = line.substr(start, stringlaenge); //std::cout << "Ref BOM: " << ref << std::endl; bom[i].setRef(ref); start = end + 1;
warum kopierst du hier jedes mal zwei komplette Vectoren?
void compare(std::vector<dataset> bom, std::vector<dataset> lager)
Was ich übrigens gut finde ist, dass du Kommentare schreibst, was viele Anfänger nicht tun.
-
Dieser Beitrag wurde gelöscht!
-
Zunächst mal nimmst du dir deine "parse"-Blöcke schaust sie dir an und überlegst, was die Unterschiede zwischen
//Hole Ref
//Hole Partname
// Hole Value
// Hole Footprintsind und was die gemeinsamkeiten sind.
-
Dieser Beitrag wurde gelöscht!
-
@apussaih
Die Gemeinsamkeit ist doch, dass du jedes mal in einem String nach einem Semikolon suchst und daraufhin einen Teilstring rausliest und irgendwo abspeicherst. Und diese Funktionalität könnte in eine eigene Funktion. Z.B. könntest du dieser Funktion die "line" übergeben und den Startpunkt ab wo er suchen soll. Und die Rückgabe ist dann quasi der Teilstring, den du extrahiert hast.
-
@apussaih Eine Frage zu der Datei „MGC3130_BOM.csv“
Ref Part Name Value Footprint BU1 CON_BLY6_7p BLY 6 SMD/ 20 BLY6_7p C1 Capacitor_IDT 100nF 0402_IDT
Zeile 2: Was ist da was?
BU1 ist die Ref, CON_BLY6_7p ist der „Part“ oder „Part Name“? (Ok, ich sehe ist „Part Name“)
Was ist dann „BLY“? Also was ist der Value und was der Footprint?bei den anderen ist das ersichtlich, bei Zeile 2 allerdings nicht.
Ich sehe gerade das du versuchst anhand von Semikolons zu trennen. Daher noch die Frage: Ist die obige BOM-Datei die Datei „MGC3130_BOM.csv“?
Editt: Du ja gestern ein fast gleiches Post. Waren da andere Dateien dabei? Vorhin war das gelöscht...
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!
-
@apussaih Ja, aber in der Datei die du zeigst wird nichts durch Semikolon getrennt. Ist da was bei C&Paste schief gelaufen?
-
Dieser Beitrag wurde gelöscht!
-
@apussaih sagte in 2 CSV Dateien Datensätze Vergleichen und auf Konsole ausgeben:
@dirkski scheint so, ist noch gar nicht aufgefallen. Tut mir leid dann, wenn ihr deswegen Probleme habt.
Ok...
...und std::exit brauchst du um das Programm zu beenden. #include <cstdlib> dann nicht vergessen..
Edit:
// Prüfen, ob Datei existiert if (if_bom.fail()) { std::cout << "Konnte: " << path << " nicht oeffnen\n"; // hier exit aufrufen mit entsprechender passender Fehlernummer. // Weiß aber nicht was man da bei Windows nimmt... }
und bei der anderen auch...
-
Dieser Beitrag wurde gelöscht!
-
@apussaih Weiß nicht. Hab mir das alles noch nicht richtig angeguckt. Ich esse jetzt erstmal...
Du solltest aber oben erstmal die BOM-Datei mit der korrekten ersetzen. Sonst kommen wir hier eh nicht weiter....
Du bist jetzt aber nicht unter Zeitdruck, oder? Sowas wie: Muss morgen/nächste Woche abgegeben werden? Ich würde vorschlagen es erstmal so zum laufen zu bekommen und dann kann man das Schritt für Schritt umbauen. Ist vom Lerneffekt auch besser... Ich will das Projekt hier gleich in den QtCreator einpflegen, dafür brauche ich (und alle anderen) die korrekte Datenbasis. Wie gesagt, bis jetzt nur überflogen...