Zum Inhalt springen

RoflCopter

Mitglieder
  • Gesamte Inhalte

    23
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von RoflCopter

  1. Habe mich mit meiner abgeschlossenen FISI Ausbildung auch auf diverse IT-Stellen - wie auch auf Stellen als Vertriebsbeauftragter beworben. Schlussendlich habe ich als VB gearbeitet - möglich ist alles. Mal mit mehr oder weniger einarbeiten. Der wesentliche Punkt ist im ersten Step lediglich dein Auftreten und wie dich selbst verkaufst.
  2. Hat sich erledigt. War etwas voreilig - "if" war das Zauberwort für eine flotte Lösung. Thread kann gerne gelöscht werden.
  3. Hallo Community, da ich das Gefühl habe mich im Kreis zu drehen, bitte ich euch um Hilfe bei folgender Aufgabenstellung: Zwecks Datenerfassung sollen je die ersten 7 Substrings "value=Wert" erfasst werden. Der restliche Inhalt ist irrelevant. Sobald diese erfasst sind - soll die nächste URL aufgerufen werden um selbige 7 Substrings und dessen Werte zur weiteren Verarbeitung einzulesen. Mittels substr_count - erhalte ich die Anzahl der im String vorkommenden Substrings (15). Meine Frage ist die folgende: Wie erhalte ich nur die ersten 7 Substrings aus dem String - der Rest ist praktisch irrelevant. Gibt es eventuell eine Funktion die mir das Leben erleichtert? Anbei mein bereinigter Code. Danke im Voraus. <?php $id_hm_nr = 0; $seperator = "="; $url="https://hilfsmittel.gkv-spitzenverband.de/produktlisteZurArt_input.action?paramArtId=0"; $pos = strpos($url, $seperator); while ($id_hm_nr <= 2) { $id_hm_nr++; $id_value_hm = 0; $id_value_beschreibung = ""; $startpos = 0; $i = 0; $url_new = substr_replace($url, "=".$id_hm_nr, $pos); $filestream = file_get_contents($url_new); $startpos = 0; while($pos_val = strpos($filestream, "value=", $startpos)){ $string = substr($filestream, $pos_val, strpos($filestream, " ", $pos_val + 1) - $pos_val); $startpos = $pos_val + 1; $id_value_hm++; echo $string."</br>"; echo "---------------------------------------------</br>"; } } ?>
  4. Hallo zusammen, aus aktuellem Anlass erbitte ich euren Rat, um nicht im Nachgang strategische Fehlentscheidung bezüglich der Datenbankstruktur zu treffen, beziehungsweise im Nachgang korrigieren zu müssen. Mein jetziger AG arbeitet primär mit CSV Dateien und Excel Dateien. Dies soll sich im Zuge einer anstehenden Kooperation ändern. Die unzähligen Dateien sollen einer MySQL DB weichen (u.a. aus Kostengründen). Bei der Datenbankstruktur stellt sich nun primär die grundlegende Frage wie wir die Informationen zu den diversen "Herstellern", "Produkten" und "Produktgruppen" ablegen. Ich habe hierzu mehrere Ansätze - bin mir allerdings vollends nicht sicher welche Lösung die bessere ist. Eventuell habt ihr noch einen besseren Vorschlag? Anbei meine Ansätze und allgemeine Daten: ca. 240 Hersteller ca. 40 Produktgruppen Die Produktgruppen sind je Hersteller identisch, die Anzahl der zu versorgenden Produkgruppen richtet sich nach dem Vertrag. Pro Produktgruppe und Hersteller 1-x mögliche Artikel. In Summe gibt es ca. 260 mögliche Eigenschaften für die bis zu 40 Produktgruppen - je Produktgruppe sind es schlußendlich jedoch nur bis zu 30 Eigenschaften. Je Hersteller 1-x Verträge möglich. Es gibt Hersteller die a) einzeln auftreten und Produktgruppen regeln und Hersteller die einzeln und in einem Verbund auftreten und dort die gleichen /und/oder verschiedene Produktgruppen regeln. Ansatz a) Alles in eine große Tabelle "werfen" und anhand der Vertrags_ID, Hersteller_ID und der Artikel_ID differenzieren. Problem hierbei: Redundanzen, zusätzlich sind diverse Eigenschaften an den Hersteller z.b. Gewährleistungszeiträume oder Versorgungszeiträume gebunden. Hieße ich hätte oftmals unnötige oder unbenutze Felder & Spalten. Ansatz Für jeden Hersteller eine Tabelle erstellen und dort alle Produktgruppen und Artikel hinterlegen. Problem hierbei: Häufig leere/unbenutzte Felder - da Produktgruppenabhängig nicht alle Felder benötigt werden. Ansatz c) Für jeden Hersteller und dessen Produktgruppen eigene Tabellen anlegen. Problem hierbei: ca. 8600 mögliche - zu erstellende Tabellen Wir kommunizieren dies bezüglich bereits mit einem Dienstleister und dem Kooperationspartner - jedoch stehen weiterhin diese o.g. Varianten im Raum und es geht zur Zeit nicht vorran. Für jeglichen Hinweis oder Ratschlag bin ich sehr dankbar. Viele Grüße roflcopter
  5. Hallo Enno, Hallo Crash2011, vielen Dank - die Lösung hat ohne Schwierigkeiten funktioniert - ihr beide habt mir einiges an Recherche und Arbeit erleichtert!
  6. Hallo zusammen, ich hoffe ich bin in dem Forum Anwendungssoftware richtig, ansonsten bitte ich um Nachsicht. Meine Aufgabe ist es mehrere Tausend Excel Zeilen/Datensätze abzugleichen. Die Aufgabe schildert sich wie folgt: Tabelle 1 beinhaltet ca. 15k Datensätze - diese Datensätze beinhalten gelegentlich Abkürzungen. Diese Abkürzungen sind wiederrum in Tabelle 2 aufgeschlüsselt. Nun möchte ich Spalte A in Tabelle 1 mit Spalte A der Tabelle 2 abgleichen um anschließend in Spalte D von Tabelle 1 den Text/Wert aus Spalte B von Tabelle 2 zu kopieren. Ich hatte bereits diverse Kombinationen und Formeln versucht wie beispielsweise WENN/VERWEIS/SVERWEIS etc. welche mir zwar die Information liefern "Wahr oder "Falsch"/"nicht vorhanden". Welche mir aber schlussendlich nicht weiter helfen. Eventuell habt ihr ein Konstrukt/eine Idee für mich parat die mir weiterhelfen könnte. Ich bedanke mich bereits jetzt im Voraus bei euch! Viele Grüße
  7. Hallo Community, ich würde gerne, bevor ich eine Datei öffne - prüfen ob diese vorhanden ist - klar dies geht mit (!if), aber gibt es eine Möglichkeit dies auch mit einem try {}, catch {} block zu regeln? Ebenso würde ich gerne bevor ich eine Datei erstelle prüfen ob genug Speicherplatz vorhanden ist, bzw. ob Rechte vorhanden sind / Ordner vorhanden ist. Mein Problem ist es, dass ich nicht weiß wie ich alle möglichen Fehler abfangen kann UND! den dazugehörigen Errorcode bzw. das was vom Betriebssystem ausgespuckt wird ( z.B. "Ordner existiert nicht" ) Mein bisheriger Wissenstand: try { // Anweisungen welche Fehler verursachen können. // z.B. Division by Zero // int z1 = 2; // int z2 = 0; //z1 = z1 / z2; } catch (...) { // So weit ich gelesen habe steht "..." für alle //möglichen Fehler // Wie gebe ich hier den Fehlercode aus? Irgendwas mit //err.description vll.? }
  8. Danke dir Klotzkopp, das war die Lösung. :bimei Diese gigantische Suchschleife war nicht mein Werk - bzw. diese wurd mir so als "optimal" vorgegeben. Ich solle lernen wie man "damals" ohne die "Super Funktionen etc. pp" klar kommen musste. Auf mein Argument, dass wir ihm HEUTE angekommen sind ging niemand ein. Bis ich den alt - eingesessenen Kollegen davon überzeugt habe werde ich wohl einiges an Berufserfahrung haben.. Ebenfalls mit den lokalen Variablen - wird hier als "schlecht" und "unlesbar" etc. betitelt - kann mich da relativ schlecht gegen wehren. Es war schon schwer genug meinen Mitarbeiter ( welcher mir "helfen" soll ) dazu zu bringen, das wir das Copy à la char by char raus nehmen. Zu deinem Link haben diese mir übrigens nichts gesagt - pure Verblüffung kam ans Tageslicht und alle sind sich einen Kaffee holen gegangen.. Nochmals danke an alle Beteiligten - scheinbar muss ich mehr auf mich hören und auch auf google bzw. diverse Foren
  9. Hallo Klotzkopp, danke dir für die Antwort - es funktioniert nun immerhin zu einem Teil. Die Erste eingelesene Zeile meiner .txt Datei wird korrekt ausgeführt, alle danach folgenden Zeilen werden fehlerhaft interpretiert. So wird z.B. in der .txt Datei angegeben durch den Operator "2" das die Datei gelöscht werden soll, dies passiert allerdings bei der Ersten Zeile ( wo es korrekt ist ) - aber auch alle nachstehenden Dokumente welche sich an anderen Orten befinden werden gelöscht ( es wird zumindest versucht, da es diese Dateien nicht gibt, da diese eigentlich erst dort hin kopiert werden ) Wenn ich allerdings in der Ersten Zeile den Operator "1" für Kopieren verwende, versucht er sämtlichen nachfolgenden Zeilen ebenfalls zu kopieren. Welche im Ordner allerdings nicht existieren ( Zielordner ). Danke vorab für eure Hilfe. Edit: Ich werde den Code gleich anhängen. #include <iostream> #include <fstream> #include <string> #include <windows.h> #include <stdlib.h> #include <sstream> // token to op #include <cstdio> // remove using namespace std; void fc_copyfile(string dn, string pad); void fc_append (string p, string& pad, string dn); void fc_action (int op, string dn, string pad, ofstream& log); void fc_com (void); int main() { string p, dn, pad, gz, token; stringstream ss (token, istringstream::in | istringstream::out); int op = 0; int i = 0; int a = 0; // Filestream Log-File ofstream log; log.open("Logfile.txt", ios::trunc, ios::binary); if(log.fail()) { cout << "Konnte Logfile.txt nicht erstellen!" << endl; cout << "Programm wird beendet..." << endl; system("PAUSE"); } else { log << "Logfile wurde erstellt." << endl; } // Filestream csv-File ifstream csv("csv.txt", ios::binary); fc_com(); // Errorhandling csv-File if(csv.fail()) { log << "CSV-Datei nicht gefunden!" << endl; cout << "CSV-Datei nicht gefunden!" << endl; system("PAUSE"); exit (1); } // Einlesen von Zeile ( gz ) von csv, anschließend werden anhand ';' Tokens erstellt while (!csv.eof()){ i = 0; a = 0; getline(csv, gz); int e = gz.find(";", a); while ( e > 0) { token = gz.substr(a, e-a); a = e + 1; e = gz.find(";", a); i++; switch(i) { case 1 : p = token; break; case 2 : dn = token; break; case 3 : ss << token; ss >> op; break; default: log << "Operator unbekannt!" << endl; } token = gz.substr(a); } fc_append(p, pad, dn); // String aneinander hängen fc_action (op, dn, pad, log); // Löschen oder Kopieren } // Ausgabe Kommandobox //cout << "Erfolgreich" << endl; //log << "Erfolgreich" << endl; system("PAUSE"); return 0; } void fc_action (int op, string dn, string pad, ofstream& log) { switch (op) { case 1 : if(pad.c_str()) { fc_copyfile(dn, pad); log << dn << " wurde kopiert" << endl; } else { log << dn << " Error.case1_op" << endl; } break; case 2 : if(pad.c_str()) { remove(pad.c_str()); log << dn << " wurde gelöscht" << endl; } else { log << dn << " Error.case2_op" << endl; } break; default : log << op << " Operator unbekannt!" << endl; } } void fc_copyfile(string dn, string pad) { ofstream outp(pad.c_str(), ios::binary); ifstream inp(dn.c_str(), ios::binary); if(inp.fail()) { cout << "inp.failed.fc_copyfile" << endl; } if(outp.fail()) { cout << "outp.failed.fc_copyfile" << endl; } // Datei kopieren outp << inp.rdbuf(); } void fc_append (string p, string& pad, string dn) { // String aneinander hängen pad = p; pad += dn; } void fc_com (void) { // Text Kommandobox cout << "Kopieren & Loeschen" << endl; }
  10. system("CLS"); <- löscht die gesamte Kommandobox und setzt den Zeiger wieder oben links in die Ecke clrscr(); ( funktioniert glaube ich nur bei den Borland Geschichten ) dürfte das Richtige für dich sein.
  11. Hallo TDM, ja das war ein Punkt - ist mir vorhin auch aufgefallen und habe es nun geändert. String pad bekommt nun wieder den korrekten Inhalt. Dennoch habe ich noch bei "remove(pad.c_str())" einen Wurm drin - dieser löscht die Dateien nicht. Und über die Logfile reden wir erst gar nicht
  12. Ich habe den aktuellen Code im Debugger laufen lassen und mir ist aufgefallen das die Variable pad ( string ) keinen Inhalt bekommt. Das aktuelle Ergebnis ist Werk von Testen etc. #include <iostream> #include <fstream> #include <string> #include <windows.h> #include <stdlib.h> #include <sstream> // token to op #include <cstdio> // remove using namespace std; void fc_copyfile(string dn, string pad); void fc_append (string p, string& pad, string dn); void fc_action (int op, string dn, string pad, ofstream& log); void fc_com (void); int main() { string p, dn, pad, gz, token; stringstream ss (token, istringstream::in | istringstream::out); int op = 0; int i = 0; int a = 0; ifstream csv; fc_com(); // Filestream Log-File ofstream log; log.open("Logfile.txt", ios::trunc, ios::binary); if(log.fail()) { cout << "Konnte Logfile.txt nicht erstellen!" << endl; cout << "Programm wird beendet..." << endl; system("PAUSE"); exit(1); } else { log << "Logfile wurde erstellt." << endl; } // Filestream csv-File csv.open("csv.txt", ios::binary); // Errorhandling csv-File if(csv.fail()) { log << "CSV-Datei nicht gefunden!" << endl; cout << "CSV-Datei nicht gefunden!" << endl; system("PAUSE"); exit (1); } while (!csv.eof()){ getline(csv, gz); i = 0; a = 0; int e = gz.find(";", a); while ( e > 0) { token = gz.substr(a, e-a); a = e + 1; e = gz.find(";", a); i++; switch(i) { case 1 : p = token; break; case 2 : dn = token; break; case 3 : ss << token; ss >> op; break; default: log << "Operator unbekannt!" << endl; } token = gz.substr(a); } fc_append(p, dn, pad); // String aneinander hängen fc_action (op, dn, pad, log); // Löschen oder Kopieren } // Ausgabe Kommandobox cout << "Erfolgreich" << endl; log << "Erfolgreich" << endl; // Filestreams schließen csv.close(); log.close(); system("PAUSE"); return 0; } void fc_action (int op, string dn, string pad, ofstream& log) { ifstream inp(dn.c_str(), ios::binary); ofstream outp(pad.c_str(), ios::binary); switch (op) { case 1 : if(inp.fail()) { log << dn << " konnte nicht gefunden werden." << endl; } else { fc_copyfile(dn, pad); log << dn << " wurde kopiert" << endl; } break; case 2 : if(!outp) { log << dn << " konnte nicht gefunden werden." << endl; } else { remove(pad.c_str()); log << dn << " wurde gelöscht" << endl; } break; default : log << op << " Operator unbekannt!" << endl; } } void fc_copyfile(string dn, string pad) { ofstream outp(pad.c_str(), ios::binary); ifstream inp(dn.c_str(), ios::binary); if(inp.fail()) { cout << "inp.failed.fc_copyfile" << endl; } if(outp.fail()) { cout << "outp.failed.fc_copyfile" << endl; } // Datei kopieren outp << inp.rdbuf(); } void fc_append (string p, string& pad, string dn) { // String aneinander hängen pad = p; pad += dn; } void fc_com (void) { // Text Kommandobox cout << "Kopieren & Loeschen" << endl; }
  13. So habe ich es getan, allerdings verlangt der Compiler ein weiteres Argument beim Funktionsaufruf. Das ursprüngliche Problem, das die Dateien nicht kopiert bzw. gelöscht werden bleibt allerdings fortbestehen. Gibt es eine Möglichkeit etwaige Fehler(codes) in einer Variable zu speichern und diese dann anzeigen zu lassen? Beispielsweise "noAccess" oder so, so dass ich meine Funktionen durchtesten kann wo es hapert. Denn der Compiler meckert nicht. Ich habe etwas von Exeptions gelesen, denke allerdings nicht, dass ich damit auf dem richtigen Weg bin.
  14. Das heißt dann, dass meine Funktion mit einer Kopie arbeitet? Hat geklappt danke - ist es möglich Filestreams zu übergeben? Der Compiler hat mir als ich in der Deklaration fc_action ( int op, string dn, string pad, ofstream log ); hatte massiv gemeckert.
  15. Eine bescheide Frage aber nun denn.. wenn ich die Variablen nun alle lokal anstatt global verwende, muss ich diese ja auch an die Funktionen übergeben. Wenn ich allerdings schreibe: void fc_action ( int op, string dn, string pad ); // Funktionsprototyp und beim Funktionsaufruf fc_action(); schreibe spuckt der Compiler mir die Meldung aus, dass fc_action(); "Akzeptiert keine 0 Argumente" - daraus lässt sich schließen, dass ich die Variablen auch in den Funktionsaufruf schreiben müsste also: fc_action ( int op, string dn, string pad ); Aber auch da meckert er mit Fehler "error C2660: 'fc_action': Funktion akzeptiert keine 0 Argumente" Ich weiß, dass das eine relativ lächerliche Frage ist - aber die Ausbildungsumstände sind nicht gerade gut da mir u.a. keine Fragen beantwortet werden - danke vorab für eure Hilfe. Edit: Habe es glaub ich selber rausgefunden - beim Funktionsaufruf muss man den Datentyp nicht mit angeben.
  16. Ich war ebenfalls der Meinung, dass ich die Streams nicht manuell zu schließen bzw. zu öffnen brauche - aber meine Mitarbeiter waren da anderer Meinung - haben es als schlechten Stil angesehen ( ich bin Azubi im 2. LJ ) Schonmal danke für deine Hilfe, ich werde mich nun darum kümmern die globalen Variablen weg zu bekommen Edit: Wie sieht es mit den Filestreams wie "log" aus - sollte ich diese auch lokal verwenden oder global?
  17. Konnte die Anforderungen zwar erfüllen - allerdings habe ich ein Fachabitur in Wirtschaft & Verwaltung - welches mir bei vielen Unternehmen zur Absage verholfen hat. Dennoch musst du dich nicht danach richten, wie schon wer vor mir gesagt hat - kommt es erstens auf die Wünsche des jeweiligen Unternehmens an - und zweitens, wie gut du dich "verkaufen" kannst.
  18. Bruttoeinkommen: FI / AE - NRW 1.LJ 475 2.LJ 550 <--- 3.LJ 650 15KM Arbeitsweg ( Bahn ) - kein Urlaubsgeld / Weihnachtsgeld / Prämien bzw. Umsatzbeteiligung 30 Tage Urlaub / Jahr 40 Stunden / Woche arbeiten
  19. Englisch wirst du auf jeden Fall sehr gut gebrauchen können, alleine deswegen weil viele Handbücher etc. meist nur in Englisch verfügbar sind. Wenn du darüber hinaus noch etwas fit in Mathematik und Kommunikation bist, hast du gute Chancen an zu kommen.
  20. Konnte den Beitrag leider nicht editieren, entschuldigt bitte den Doppelpost. Ich habe die Sache mit dem rdbuf einfach realisieren können, das mit dem remove auch. Allerdings kopiert bzw. löscht das Programm nicht wie gewünscht die Dateien. Ich habe es im Debugger geprüft, alle Variablen beinhalten den gewünschten String bzw. Wert. Ich habe zur Sicherheit eine Variable Test hinzugefügt um sicher gehen zu können, dass es nicht am Operator liegt. Anbei der Code. #include <iostream> #include <fstream> #include <string> #include <windows.h> #include <stdlib.h> #include <sstream> // token to op #include <cstdio> // remove using namespace std; void fc_copyfile(string dn, string pad); void fc_append (); void fc_action(); void fc_com (); // global string p, dn, pad, gz, token; stringstream ss (token, istringstream::in | istringstream::out); int op; ofstream log, outp; ifstream inp; int main() { fc_com(); int i = 0; int a = 0; ifstream csv; // Filestream Log-File log.open("Logfile.txt", ios::trunc, ios::binary); // finish log << "Logfile wurde erstellt." << endl; // Filestream csv-File csv.open("csv.txt", ios::binary); // Errorhandling csv-File if(!csv) { log << "CSV-Datei nicht gefunden!" << endl; csv.close(); log.close(); cout << "CSV-Datei nicht gefunden!" << endl; system("PAUSE"); exit (1); } while (!csv.eof()){ getline(csv, gz); i = 0; a = 0; int e = gz.find(";", a); while ( e > 0) { token = gz.substr(a, e-a); a = e + 1; e = gz.find(";", a); i++; switch(i) { case 1 : p = token; break; case 2 : dn = token; break; case 3 : ss << token; ss >> op; break; default: log << "Operator unbekannt!" << endl; } token = gz.substr(a); } fc_append(); // String aneinander hängen fc_action(); // Löschen oder Kopieren } // Ausgabe Kommandobox cout << "Erfolgreich" << endl; log << "Erfolgreich" << endl; // Filestreams schließen csv.close(); log.close(); system("PAUSE"); return 0; } void fc_action () { int test = 1; // zum Testen switch (test) { // << Hier normalerweise op case 1 : if(!inp) { log << dn << " konnte nicht gefunden werden." << endl; } else { fc_copyfile(dn, pad); log << dn << " 1.copyfile wurde kopiert" << endl; } break; case 2 : if(!outp) { log << dn << " konnte nicht gefunden werden." << endl; } else { remove(pad.c_str()); log << dn << " 2.remove wurde gelöscht" << endl; } break; default : log << op << " Operator unbekannt!" << endl; } } void fc_copyfile(string dn, string pad) { ofstream outp; ifstream inp; // Filestreams öffnen inp.open(dn.c_str(), ios::binary); outp.open(pad.c_str(), ios::binary); // Datei kopieren outp << inp.rdbuf(); // Filestreams schließen outp.close(); inp.close(); } void fc_append () { // String aneinander hängen pad = p; pad += dn; } void fc_com () { // Text Kommandobox cout << "Kopieren und Löschen" << endl; }
  21. Danke dir, hätte nicht gedacht, dass es so einfach zu realisieren ist
  22. Hallo Klotzkopp, danke dir für deine Antwort. Den Part mit dem "remove" konnte ich relativ zügig lösen. case 2 : if(!outp) { log << dn << " not found, can't delete the file." << endl; } else { remove(pad.c_str()); log << dn << " deleted" << endl; } Allerdings macht mir der Part mit "rdbuf" etwas zu schaffen, trotz google und msdn - es scheint mir so als ob rdbuf eine Umleitung ist? Quelle: basic_ios::rdbuf // basic_ios_rdbuf.cpp // compile with: /EHsc #include <ios> #include <iostream> #include <fstream> int main( ) { using namespace std; ofstream file( "rdbuf.txt" ); streambuf *x = cout.rdbuf( file.rdbuf( ) ); cout << "test" << endl; // Goes to file cout.rdbuf(x); cout << "test2" << endl; }
  23. Hallo Community, nach mehr oder wenig kurzer Suche ( google ) bin ich auf einen Beitrag von diesem Forum gefunden, wie man einen String zu einem Integer umwandeln kann ( C++ ) Dies soll mit "istringstream" funktionieren, ich habe mir das Bsp. welches ich unter der Sufu gefunden habe bei Seite genommen und mal selber ausprobiert. Dennoch scheint mein Programm nicht zu funktionieren. Ich habe die Aufgabe ein Programm in C++ zu schreiben, welches aus einer .txt Datei komplette Zeilen einliest. Diese Zeile soll dann anhand der vorhandenen Trennzeichen ';' in Substrings gesplittet werden. Die 3 Substrings lauten: p = pfad dn = dateiname op = operator Anhand des Operators soll eine Aktion ausgeführt werden - Löschen oder Kopieren. Eventuelles Errorhandling steht noch nicht auf dem Plan. Das Problem ist, dass der gewünschte Effekt sprich: Datei kopiert oder Datei gelöscht nicht eintritt. Beispiel zum Inhalt der . txt Datei: D:\Test\;hallo_welt.txt\;2 Anbei der Quellcode #include <iostream> #include <fstream> #include <string> #include <windows.h> #include <stdlib.h> #include <sstream> using namespace std; void fc_copyfile(string in, string out); void fc_append (); void fc_action(); void fc_com (); // global string p, dn, pad, gz, token; stringstream ss (token, istringstream::in | istringstream::out); int op; ofstream log; int main() { fc_com(); int i = 0; int a = 0; ifstream csv; log.open("Logfile.txt", ios::trunc, ios::binary); log << "Logfile created" << endl; csv.open("csv.txt", ios::binary); if(!csv) { log << "csv.txt not found." << endl; csv.close(); log.close(); exit (1); } while (!csv.eof()){ getline(csv, gz); i = 0; a = 0; int e = gz.find(";", a); while ( e > 0) { token = gz.substr(a, e-a); a = e + 1; e = gz.find(";", a); i++; switch(i) { case 1 : p = token; break; case 2 : dn = token; break; case 3 : ss << token; ss >> op; break; default: log << "Operator unknown!" << endl; } token = gz.substr(a); } fc_append(); fc_action(); } log << "Finished" << endl; csv.close(); log.close(); system("PAUSE"); return 0; } void fc_action () { // copy or delete switch (op) { case 1 : fc_copyfile(dn, pad); log << dn << " copied" << endl; case 2 : BOOL WINAPI DeleteFile( __in LPCTSTR pad); log << dn << " deleted" << endl; default : log << "Operator unknown!" << endl; } } void fc_copyfile(string in, string out) { // copy char by char ( binary mode ) ifstream inp; ofstream outp; char c; inp.open(in.c_str(), ios::binary); outp.open(out.c_str(), ios::binary); while(inp.get(c) && !inp.eof()){ outp.put(c); } } void fc_append () { // copy content of p to pad, append dn at pad ( p + dn ) pad = p; pad += dn; } void fc_com () { // text cout << "Copy and Delete" << endl; cout << "Read the Logfile.txt for further details" << endl; } Ich danke im Voraus für eure Hilfe. P.S.: Sorry fürs falsche Forum - ist mit gerade eben erst aufgefallen! Bitte verschieben.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...