Need dev-c++ freak - einfache Sache ;)
-
Zuerst einmal ein "Hello World" ins Forum... is der alt? Naja egal, hab vor wenigen Tagen mit C++ angefangen, weil mein Chef ne .exe gebraucht hat die mit IO arbeiten soll, und ich dachte mir Basic wird langsam gefährlich für Win7 xD
Das Programm soll aus einem best. Ordner alle z.b. .txt Dateien auf ein bestimmtes Wort prüfen. Wird das gesuchte Wort gefunden kommt es in eine Excel Tabelle.
Also ich hab im Netz gesucht und gesucht, aber immer nur häppchenweiße bekommen was ich wollte...bla und blub ihr wisst was dann, zamgekeilt bis alles auf einander abgestimmt ist, irgendwie
Das ganze Ding läuft soweit wie ichs mir vorstell, allerdings würde ich gerne wissen,da ich vermute, dass es so viel einfacher gehen würde ^^, was man verbessern kann. Ach was ich gerade bemerke, sorry wegen kommentarlosem code =(, und um methoden mit übergabeparameter und so würd ich mich rießig freuen 
gruß mexx
#include <iostream> #include <fstream> #include <string> #include <cstdlib> #include <windows.h> #include <dirent.h> #include <sys/types.h> using namespace std; //__________________________________// // // int main() // --- --- KONFIGURATION --- --- // { //__________________________________// std::ofstream outfile("_Ausgabe2.xls"); // Name: Ausgabedatei std::string folderPath = "./"; // Folgenden Ordner durchsuchen <- "./" für aktuelles Verzeichnis std::string files = ".txt"; // Durchsuche Ordner nach diesen Dateien (!! Endung !!) std::string findMe = "hallo"; // Durchsuche Dateien nach folgender Zeichenkette std::string strName; DIR *dir; struct dirent *dirzeiger; if((dir=opendir(folderPath.c_str())) != 0) while((dirzeiger=readdir(dir)) != 0) { strName = ("%s\n",(*dirzeiger).d_name); if(strName.length()>files.length()) { int i = (strName.length()) - files.length(); if( strName.substr(i, files.length()).compare(files.c_str())==0) { std::ifstream infile; infile.open(strName.c_str()); if(infile) printf("%s\n",strName.c_str()); std::string strLine; while( std::getline(infile, strLine) ) { int j = 0; while ( j < strLine.length() ) { if( strLine.substr(j, findMe.length()).compare(findMe.c_str())==0) { outfile << strLine.substr(0) << "\n"; j = strLine.length(); } j++; } } infile.close(); outfile << "\n\n\n"; } } } outfile.close(); system("PAUSE"); return EXIT_SUCCESS; }
-
Was für ein grässlicher C/C++ Mix...
Hast du gestern angefangen zu programmieren?
-
Ich würde dir raten, dir einmal boost anzusehen. Dort hast du Iteratoren für Files, die alles viel einfacher gestalten

-
nich gestern,vorgestern am montag ^^
ich weiß selbst dass das übel ist, ich kenn den code in vielen andren sprachen,also sag mir lieber wie das ding kürzer läuft,bitte
-
Verzeichnisstrukturen durchsuchen geht afaik nicht mit Standard-C++, zu dem Teil kann ich nichts sagen. Ich kenne nur die Windows-Variante mit FindFirstFile()/FindNextFile() - bei der könntest du sogar Suchfilter angeben und dir den Namensvergleich ersparen.
Aber die Vergleichstbedingungen sind imho ein wenig umständlich - std::string beherrscht auch Vergleiche mit == und Teilstring-Suche per find():
if( strName.substr(i, files.length()) == files.c_str() ) { std::ifstream infile; infile.open(strName.c_str()); if(infile) printf("%s\n",strName.c_str()); std::string strLine; while( std::getline(infile, strLine) ) { int j = 0; if(strLine.find(findMe)!=string::npos) { outfile << strLine.substr(0) << "\n"; } } infile.close(); outfile << "\n\n\n"; }
-
mexxville schrieb:
also sag mir lieber wie das ding kürzer läuft,bitte

Schau dir mal RAII, implizite Konvertierungen, Operator-Priorität, Namensbereiche, Codestil (vor allem Einrückungen), Konstruktoren/Destruktoren und die Standardbibliothek (das ist das Ding, dass du vergewaltigst) an.
-
Wenn du mir sagst, wie ein xls File aufgebaut ist + was da jetzt genau hinein geschrieben werden muss, überleg ich mir vielleicht dir zu helfen

-
Beides
using namespace std;undstd::stringim Code geht schon mal nicht. Lösch lieber "using ...". dirent.h mag ich nicht besonders, da man die dort verwendeten Funktionen sicherer und C++-näher selbst implementieren kann.CStoll schrieb:
Ich kenne nur die Windows-Variante mit FindFirstFile()/FindNextFile() - bei der könntest du sogar Suchfilter angeben und dir den Namensvergleich ersparen.
Etwas Vernünftigeres gibt es auch nicht.
CStoll schrieb:
Aber die Vergleichstbedingungen sind imho ein wenig umständlich - std::string beherrscht auch Vergleiche mit == und Teilstring-Suche per find():
Lustigerweise bildet der ==-Vergleich den größten Angriffspunkt bei der Kritik.
-
windows variante? sprich vc++? an und für sich brauch ich es sowieso nur unter windows ebene. wenn du nen code da ready hättest
meine pixel wärn bereit
aber wenn nicht ne,mach dir keinen stress.
für dem chef seine zwecke reicht es ^^ muss ja keine xxGB dateien verarbeiten wollte dennoch fragen wo man ressourcen sparen kann und naja, für den schrecken den ich jetzt jedem c/c++ coder eingejagt hab übernehm ich keine verantwortung xDallerdings will ich noch sehen wie EOutOfResources das gecodet hätte

du hast gesagt das ist mist,also zeig mir wies richtig geht,sonst hät ich wohl kaum dieses thema eröffnet und nach hilfe gebeten,bin hier um was zu lernen
gruß mexx
-
314159265358979 schrieb:
Wenn du mir sagst, wie ein xls File aufgebaut ist + was da jetzt genau hinein geschrieben werden muss, überleg ich mir vielleicht dir zu helfen

danke für diesen wertvollen kommentar ms.pi*g*
das ist typisch nicht selbst denker
ich hab einige parameter ausprobiert hat nicht geklappt,jetzt schreib ich halt ein vb script dazu.
mussu halt nachdenken jungge xDan alle andren danke

-
Sagen wirs so, ich hab weder Lust, deinen hässlichen Code zu durchsuchen, noch deinen schlecht formulierten Beitrag

-
brauchst nicht den code zu durchsuchen,ein einfaches vb makro reicht,
es soll von zeile a bis 'n' den Inhalt auslesen und in eine tabelle schreiben ( 'n' ist die erste Zeile ohne Inhalt,danach kommen nochmal zwei leere zeilen und dann soll er nen neues tabellenblatt erstellen und den nächsten block reinschreiben.
-
Wie viel in der Stunde?
-
du bistn juter coder und frägst mich für sowas billiges nach nem stundenlohn??? xDDD nein danke,raus aus meinem haus -.- wer dafür über ne stunde braucht....
-
mexxville schrieb:
du bistn juter coder und frägst mich für sowas billiges nach nem stundenlohn???
Sonst noch was?

Du kannst mich natürlich auch für das Projekt mit 'nem fixen Preis bezahlen
-
EOutOfResources schrieb:
mexxville schrieb:
du bistn juter coder und frägst mich für sowas billiges nach nem stundenlohn???
EOutOfResources schrieb:
Sonst noch was?

ja nu ich muss sagen da schwiez is schön

EOutOfResources schrieb:
Du kannst mich natürlich auch für das Projekt mit 'nem fixen Preis bezahlen

Ja klare,wenn du mir zeigen würdest was du drauf hast hät ich vielleicht das ein oder andere für dich,es geht um so ne wawi software( oder wiso? ) warenwirtschaft halt. daten auslesen in datenbanken speichern usw( was ich weiß über ne normale com schnittstelle).
kannst ja ma pm schreiben,jeder andre der was kann und bissl was verdienen will auch
-
Also willst du das selber nicht mehr machen oder wie?
-
[gelöscht] diese verdammte Verbindung
-
Sieht nicht danach aus - wenn du nichts anbietest, bekommst du hier nur Tipps, mit denen du deine Probleme selber lösen kannst. Wenn du fertige Programme benötigst, erwarten die meisten hier auch entsprechende Gegenleistungen

-
na ich werd mich da dransetzen wenn ich bis morgen sonst nix hab,das muss erstma fertig werden
aber das mit der schnittstelle.. ^^ die zeit hab ich nich ^^