Zur Erheiterung!
-
Oh je

Mal was zur Erheiterung! Ich hatte ein zweiwöchiges Praktikum und die Aufgabe ein Serverupdate zu programmieren. Ich bin zwar noch EXTREMER Anfänger, aber ich sollte es halt machen. Das ist bei rausgekommen! Wer auch nur das Ziel vertsteht, muss ein Genie sein!
#include <iostream> #include <string> #include <fstream> #include <conio.h> #include <sstream> #include <windows.h> #include <cstdlib> #include "log.h" #include <vector> #include <stdio.h> #include <stdlib.h> using namespace std; enum { WIN_2000 = 0, WIN_XP, WIN_VISTA, WIN_7 }; int GetWinVersion(); //Funktionen// string itemeintraege(string array); void insert(string usern, string pcname); bool close = false; bool abbrechen = false; bool mitte = false; void open_user(); void func(fstream& datei, string urpsrung); void pc(); string item(string array); string a; string v; string d; string username; int end = 1; int anzahluser; vector<string> v_pc(0); int numspaces2 = 0; string user, user2, user3, user_, user_2, user_3; Log *pLog = new Log("LogFileSap.log"); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_HIDE); CopyFile("user.list", "user_temp.list", false); string adresse; int ruck; pc(); ruck = MessageBox(NULL,"Saplogon-Server Update verfügbar. Update jetzt starten?","SapLogon Update",MB_OKCANCEL|MB_ICONEXCLAMATION); do { switch(ruck) { case IDCANCEL: { pLog->Write("switch case = idcancel"); exit(0); break; } case IDOK: { open_user(); pLog->Write("switch case = idok"); if(abbrechen == true) { remove(user.c_str()); remove(user2.c_str()); remove(user3.c_str()); rename("temp_1.ini", user.c_str()); rename("temp_2.ini", user2.c_str()); rename("temp_3.ini", user3.c_str()); } else { remove("temp_1.ini"); remove("temp_2.ini"); remove("temp_3.ini"); pLog->Write("In: Int Main | Do - While schleife erfolgreich verlassen!\n"); } // adresse = username; // insert(adresse); } } if(abbrechen == true) { } else { rename("temp_1.ini",user.c_str()); rename("temp_2.ini",user2.c_str()); rename("temp_3.ini",user3.c_str()); } }while(close == false); remove("user.list"); rename("user_temp.list","user.list"); MessageBox(NULL,"Update durchgeführt!","SapLogon Update",MB_OKCANCEL|MB_ICONEXCLAMATION); } void open_user() { pLog->Write("Funktion open_user erfolgreich geöffnet\n"); string buffer, user, substr; int begin = 0, i=0; if(end>0) { fstream userlist_in("user.list", ios::in); pLog->Write("user.list gesucht\n"); if(userlist_in.good()) { pLog->Write("user.list erfolgreich geöffnet\n"); while(!userlist_in.eof()) { getline(userlist_in,buffer); user+=buffer; user+="\n"; if(buffer.length()==0) { pLog->Write("Länge der Zeile aus user.list = 0\n Eintrag wird übersprungen!\n"); } else { pLog->Write(" Buffer geschrieben\n "); } } } userlist_in.close(); end = user.find_first_of("\n"); for(i=0; i<=end-1;i++) { substr += user[i]; } user.erase(0,end+1); fstream userlist_out("user.list", ios::out); userlist_out << user; userlist_out.close(); if(substr.length()!=0) { pLog->Write("Username (substr) = Check (!=0)\n"); username = substr; cout << "*Bitte warten* Aktueller User: " << username << endl; system("cls"); anzahluser++; cout << anzahluser; string pcnamen[20]; bool verlassen = false;; int position1, position3 =0; cout << "User: " << username << " PC-Name:" << v_pc[anzahluser-1] << endl; position1 = v_pc[anzahluser-1].find("\n",0); do { int position2 = 0; int pos_temp=0; string pcn; position2 = v_pc[anzahluser-1].find(";",position3); if(position2 == string::npos) { verlassen = true; } pos_temp = position2 - position3; pcn = v_pc[anzahluser-1].substr(position3,pos_temp); position3 = position2+1; insert(username,pcn); }while(verlassen == false); pLog->Write("-----------Neuer User--------------\n"); pLog->Write("-------------------------------------\n"); } else { pLog->Write("Username (substr) =0\n"); do { int manuelleruser; manuelleruser = MessageBox(NULL,"User-List zuende. Manuell weitere User eintragen?\n","SapLogon Update",MB_YESNO | MB_ICONQUESTION ); switch(manuelleruser) { case IDYES: { char janein, janein2; HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_SHOW); string substr, pcnamen; cout << "Usernamen eingeben: " << endl; cin >> substr; cout << "Meinten sie " << substr << "?" << endl; cout << "[J]a / [N]ein" << endl; cin >> janein; cout << "PC-Namen eingeben: " << endl; cin >> pcnamen; cout << "Meinten sie " << pcnamen << "?" << endl; cout << "[J]a / [N]ein" << endl; cin >> janein2; if(janein == 'J' || janein == 'j') { HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_HIDE); if(janein2 == 'J' || janein2 == 'j') { username = substr; insert(substr, pcnamen); } } break; } case IDNO: { close = true; HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_HIDE); break; } } }while(close != true); } } else { pLog->Write("int end =< 0"); close = true; } } //Öffne Saplogon und schreibe Servereintrag// void insert(string usern, string pcname) { int ver = GetWinVersion(); switch( ver ) { case -1: MessageBox(NULL,"Fehler: Unbekanntes Betriebssystem!\n","SapLogon Update",MB_OK| MB_ICONERROR); break; case WIN_XP: user = "\\\\"; user.append(pcname); user.append("\\"); user.append("C$\\WINDOWS\\saplogon.ini"); break; case WIN_7: user = "\\\\"; user.append(pcname); user.append("\\"); user.append("E$\\Users\\"); user.append(usern); user.append("\\AppDataTest\\Roaming\\SAP\\Common"); // user_ = user; // user_.append("\\temp_1.ini"); user_ = "temp_1.ini"; user.append("\\saplogon.ini"); cout << user << endl; pLog->Write("Adresse 1 initialisiert\n"); user2 = "\\\\"; user2.append(pcname); user2.append("\\"); user2.append("E$\\Users\\"); user2.append(usern); user2.append("\\AppDataTest\\Local\\SAP\\SAP GUI"); //user_2 = user2; //user_2.append("\\temp_2.ini"); user_2 = "temp_2.ini"; user2.append("\\saplogon.ini"); cout << user2 << endl; pLog->Write("Adresse 2 initialisiert\n"); user3 = "\\\\"; user3.append(pcname); user3.append("\\"); user3.append("E$\\Users\\"); user3.append(usern); user3.append("\\AppDataTest\\Local\\SAP\\SAP GUI"); //user_3 = user3; //user_3.append("\\temp_3.ini"); user_3 = "temp_3.ini"; user3.append("\\saplogon2.ini"); cout << user3 << endl; pLog->Write("Adresse 3 initialisiert\n"); break; } if(ver== WIN_7 ) { string i, o, p; i =user_; i.append("_"+usern+"_"+pcname); o =user_2; o.append("_"+usern+"_"+pcname); p =user_3; p.append("_"+usern+"_"+pcname); CopyFile (user.c_str(), i.c_str(),0); CopyFile(user2.c_str(), o.c_str(),0); CopyFile(user3.c_str(), p.c_str(),0); CopyFile (user.c_str(), user_.c_str(),0); CopyFile(user2.c_str(), user_2.c_str(),0); CopyFile(user3.c_str(), user_3.c_str(),0); pLog->Write("Datei 1 wird geöffnet\n"); fstream datei(user.c_str(), ios:: in | ios::out); // test = "saplogon.ini"; // tes.c_str() durch user.c_str eretzen! func(datei, user); // tes.c_str() durch user.c_str eretzen! pLog->Write("Datei 1 Funktion func() ausgeführt\n"); mitte = false; pLog->Write("Datei 2 wird geöffnet\n"); fstream datei2(user2.c_str(), ios::in | ios:: out); // test2 = "saplogon2.ini"; // tes.c_str() durch user.c_str eretzen! func(datei2, user2); // tes.c_str() durch user.c_str eretzen! pLog->Write("Datei 2 Funktion func() ausgeführt\n"); mitte = false; pLog->Write("Datei 3 wird geöffnet\n"); fstream datei3 (user3.c_str(), ios:: in | ios::out); // test3 = "saplogon3.ini"; // tes.c_str() durch user.c_str eretzen! func (datei3, user3); // tes.c_str() durch user.c_str eretzen! pLog->Write("Datei 3 Funktion func() ausgeführt\n"); mitte = false; } if(ver==WIN_XP) { pLog->Write("Datei 1 wird geöffnet\n"); fstream datei("saplogon.ini", ios:: in | ios::out); // test = "saplogon.ini"; CopyFile(user.c_str(), "temp_1.ini", false); string j; j = user_; j.append("_"+usern+"_"+pcname); CopyFile(user.c_str(), j.c_str(), 0); func(datei, user); // tes.c_str() durch user.c_str eretzen! pLog->Write("Datei 1 Funktion func() ausgeführt\n"); mitte = false; } if(ver != WIN_XP && ver != WIN_7) { pLog->Write("Unbekanntes Betriebssystem\n"); remove(user.c_str()); // tes.c_str() durch user.c_str eretzen! remove(user2.c_str()); // tes.c_str() durch user.c_str eretzen! pLog->Write("Öffnet fstream datei2 zum output von string array in saplogon.ini\n");(user3.c_str()); // tes.c_str() durch user.c_str eretzen! rename(user_.c_str(),user.c_str()); // tes.c_str() durch user.c_str eretzen! rename(user_2.c_str(),user2.c_str()); // tes.c_str() durch user.c_str eretzen! rename(user_3.c_str(),user3.c_str()); // tes.c_str() durch user.c_str eretzen! } } void func(fstream& datei, string ursprung) { string buffer, array; if(!datei.good()) { pLog->Write("saplogon.ini konnte nicht geöffnet werden geöffnet\n"); HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_SHOW); cout << "\n\nFehleradresse: " << ursprung << "\n\n" << endl; rename("temp_1.ini",user.c_str()); // tes.c_str() durch user.c_str eretzen! rename("temp_2.ini",user2.c_str()); // tes.c_str() durch user.c_str eretzen! rename("temp_3.ini",user3.c_str()); } else{ pLog->Write("saplogon.ini erfolgreich geöffnet\n"); while (!datei.eof() && datei.good()) //Datei zeilenweise in Array einlesen { getline(datei,buffer); array+=buffer; array+="\n"; } datei.close(); string search ("[Description]"); int pos, pos2, pos3; if(array.find("SB4 Produktiv ECC 6.0 +") == string::npos) { int counter; pos= array.find(search); pos2= array.find("=\n",pos); pos3= array.find("[",pos+1); int counter1, counter2; if(pos2<pos3) { pLog->Write("Es ist ein freier Eintrag verfuegbar!\n"); string itemnummer = "Item"; int rt; rt = pos2-1; cout << array[rt] << endl; stringstream outitem; outitem << array[rt]; itemnummer.append(outitem.str()); itemnummer.append("="); array.insert(pos2+1,"SB4 Produktiv ECC 6.0 +"); counter++; mitte = true; array = item(array); vector<string> find(0); vector<string> ersetze(0); int finde[24]; int finde2[24]; find.push_back("[Router]"); find.push_back("[Router2]"); find.push_back("[RouterChoice]"); find.push_back("[Server]"); find.push_back("[Database]"); find.push_back("[System]"); find.push_back("[Address]"); find.push_back("[MSSysName]"); find.push_back("[MSSrvName]"); find.push_back("[SessManKey]"); find.push_back("[SncName]"); find.push_back("[SncChoice]"); find.push_back("[Codepage]"); find.push_back("[CodepageIndex]"); find.push_back("[Origin]"); find.push_back("[MSSrvPort]"); find.push_back("[LowSpeedConnection]"); find.push_back("[Utf8Off]"); find.push_back("[EntryKey]"); find.push_back("[EncodingID]"); find.push_back("[ShortcutType]"); find.push_back("[ShortcutString]"); find.push_back("[ShortcutTo]"); find.push_back("[ShortcutBy]"); ersetze.push_back(""); ersetze.push_back(""); ersetze.push_back("0"); ersetze.push_back("schaltbau"); ersetze.push_back("01"); ersetze.push_back("3"); ersetze.push_back("172.20.1.12"); ersetze.push_back("SB4"); ersetze.push_back("dfcsba00.sap"); ersetze.push_back("22"); ersetze.push_back(" "); ersetze.push_back("-1"); ersetze.push_back("1100"); ersetze.push_back("-1"); ersetze.push_back("MS_SEL_GROUPS"); ersetze.push_back("sapmsSB4"); ersetze.push_back("0"); ersetze.push_back("0"); ersetze.push_back(""); ersetze.push_back(""); ersetze.push_back("0"); ersetze.push_back(""); ersetze.push_back(""); ersetze.push_back(""); for(int z = 0; z < find.size(); z++) { finde[z] = array.find(find[z],0); } int test = find.size(); for(int i = 0; i < find.size(); i++) { int pos11, pos22, temp, temp2; pos11 = static_cast<int> (array.find(find[i],0)); pos22 = static_cast<int> (array.find(itemnummer,pos11)); temp = array.find("\n",pos22); temp2 = temp-pos22; array.replace(pos22+6,temp2-6,ersetze[i]); pLog->Write("Bereits vorhandene Itemeintraege werden ersetzt!\n"); } } else { pLog->Write("Kein freier Item-Eintrag vorhanden\n"); int counter = 1, div = 0, temp, i, numspaces; bool close = false; char nextChar; string s1; numspaces=1; div = pos3-pos; s1 = array.substr(pos,div); for(i=0; i<int(s1.length());i++) { nextChar = s1.at(i); if(nextChar=='=') { numspaces++; } } string teil; string ganz ("Item"); stringstream out; out << numspaces; numspaces2 = numspaces; teil = out.str(); ganz.append(teil); ganz.append("=SB4 Produktiv ECC 6.0 +\n"); array.insert(pos3, ganz); pLog->Write("saplogon.ini wurde ergänzt\n"); array = item(array); vector<string> find(0); vector<string> ersetze(0); int finde[24]; int finde2[24]; find.push_back("[Router]"); find.push_back("[Router2]"); find.push_back("[RouterChoice]"); find.push_back("[Server]"); find.push_back("[Database]"); find.push_back("[System]"); find.push_back("[Address]"); find.push_back("[MSSysName]"); find.push_back("[MSSrvName]"); find.push_back("[SessManKey]"); find.push_back("[SncName]"); find.push_back("[SncChoice]"); find.push_back("[Codepage]"); find.push_back("[CodepageIndex]"); find.push_back("[Origin]"); find.push_back("[MSSrvPort]"); find.push_back("[LowSpeedConnection]"); find.push_back("[Utf8Off]"); find.push_back("[EntryKey]"); find.push_back("[EncodingID]"); find.push_back("[ShortcutType]"); find.push_back("[ShortcutString]"); find.push_back("[ShortcutTo]"); find.push_back("[ShortcutBy]"); ersetze.push_back(" "); ersetze.push_back(" "); ersetze.push_back("0"); ersetze.push_back("schaltbau"); ersetze.push_back("01"); ersetze.push_back("3"); ersetze.push_back("172.20.1.12"); ersetze.push_back("SB4"); ersetze.push_back("dfcsba00.sap"); ersetze.push_back("22"); ersetze.push_back(" "); ersetze.push_back("-1"); ersetze.push_back("1100"); ersetze.push_back("-1"); ersetze.push_back("MS_SEL_GROUPS"); ersetze.push_back("sapmsSB4"); ersetze.push_back("0"); ersetze.push_back("0"); ersetze.push_back(" "); ersetze.push_back(" "); ersetze.push_back("0"); ersetze.push_back(" "); ersetze.push_back(" "); ersetze.push_back(" "); for(int z = 0; z < find.size(); z++) { finde[z] = array.find(find[z],0); } int test = find.size(); for(int i = 0; i < find.size(); i++) { int pos1, pos2; pos1 = static_cast<int> (array.find(find[i],0)); pos2 = static_cast<int> (array.find(v,pos1)); array.insert(pos2+6,ersetze[i]); } } } else { vector<string> find(0); vector<string> ersetze(0); int finde[24]; int finde2[24]; find.push_back("[Router]"); find.push_back("[Router2]"); find.push_back("[RouterChoice]"); find.push_back("[Server]"); find.push_back("[Database]"); find.push_back("[System]"); find.push_back("[Address]"); find.push_back("[MSSysName]"); find.push_back("[MSSrvName]"); find.push_back("[SessManKey]"); find.push_back("[SncName]"); find.push_back("[SncChoice]"); find.push_back("[Codepage]"); find.push_back("[CodepageIndex]"); find.push_back("[Origin]"); find.push_back("[MSSrvPort]"); find.push_back("[LowSpeedConnection]"); find.push_back("[Utf8Off]"); find.push_back("[EntryKey]"); find.push_back("[EncodingID]"); find.push_back("[ShortcutType]"); find.push_back("[ShortcutString]"); find.push_back("[ShortcutTo]"); find.push_back("[ShortcutBy]"); ersetze.push_back(" "); ersetze.push_back(" "); ersetze.push_back("0"); ersetze.push_back("schaltbau"); ersetze.push_back("01"); ersetze.push_back("3"); ersetze.push_back("172.20.1.12"); ersetze.push_back("SB4"); ersetze.push_back("dfcsba00.sap"); ersetze.push_back("22"); ersetze.push_back(" "); ersetze.push_back("-1"); ersetze.push_back("1100"); ersetze.push_back("-1"); ersetze.push_back("MS_SEL_GROUPS"); ersetze.push_back("sapmsSB4"); ersetze.push_back("0"); ersetze.push_back("0"); ersetze.push_back(" "); ersetze.push_back(" "); ersetze.push_back("0"); ersetze.push_back(" "); ersetze.push_back(" "); ersetze.push_back(" "); int a, c, d; string b; a= array.find("=SB4 Produktiv ECC 6.0 +",0); b = array[a-1]; cout << " B: " << b << endl; string t = "Item"; t.append(b); t.append("="); cout << "t: " << t << endl; for(int z = 0; z<find.size(); z++) { //// finde[z] = array.find(find[z],0); } for(int i = 0; i < find.size(); i++) { int pos1, pos2, temp, temp2; pos1 = static_cast<int> (array.find(find[i],0)); pos2 = static_cast<int> (array.find(t,pos1)); temp = array.find("\n",pos2); temp2 = temp-pos2; array.replace(pos2+6,temp2-6,ersetze[i]); } // } //// pLog->Write("Der neue server war schon vorhanden.\n"); } pLog->Write("array = item(array) fehlerfrei ausgeführt\n"); fstream datei2;; pLog->Write("Öffnet fstream datei2 zum output von string array in saplogon.ini\n"); datei2.open(ursprung.c_str(), ios::out); datei2 << array; datei2.close(); array = "\0"; pLog->Write("fstream datei2 geschlossen\n"); } } string item(string array) { pLog->Write("string item betreten\n"); string b, c, e; a = "Item"; d = "\nItem"; v = "Item"; stringstream out, out2; out << numspaces2-1; out2 << numspaces2; b = out.str(); e = out2.str(); v.append(e); v.append("="); a.append(b); a.append("="); d.append(e); d.append("="); int it1 = 0, it2 = 0, anfang = 1; if(numspaces2>0 && mitte == false && array.find("SB4 Produktiv ECC 6.0 +",0)!= string::npos) { do { pLog->Write("Adresse 3 initialisiert\n"); int n, m, k; k = array.find("[Description]"); m = array.find("[",k+1); it1 = array.find(a,anfang); it2 = array.find("\n", it1); if(it1 < array.size() ) { if(it1>k && it1<m) { pLog->Write("Item-Eintrag wurde nicht gesetzt!"); cout << "Eintrag nicht gesetzt an Stelle " << it2 << endl; } else { pLog->Write("Item-Eintrag wird gesetzt"); array.insert(it2,d); } } anfang = it2; }while(it1 < array.size()); } if(mitte == true) { } return array; } //Gucke nach Item(lettzter eintrag)= Einträgen. Finde nächstes \n und füge danach Item(letzter EIntrag +1)= hinzu. int GetWinVersion() { OSVERSIONINFO info; OSVERSIONINFOEX ex; ZeroMemory( &info, sizeof( OSVERSIONINFO ) ); ZeroMemory( &ex, sizeof( OSVERSIONINFOEX ) ); info.dwOSVersionInfoSize = sizeof( OSVERSIONINFO ); ex.dwOSVersionInfoSize = sizeof( OSVERSIONINFOEX ); GetVersionEx( &info ); GetVersionEx( ( OSVERSIONINFO * ) &ex ); if( info.dwMajorVersion == 5 && info.dwMinorVersion == 0 ) return WIN_2000; if( info.dwMajorVersion == 5 && info.dwMinorVersion == 1 ) return WIN_XP; if( info.dwMajorVersion == 6 && info.dwMinorVersion == 0 && ex.wProductType == VER_NT_WORKSTATION ) return WIN_VISTA; if( info.dwMajorVersion == 6 && info.dwMinorVersion == 1 && ex.wProductType == VER_NT_WORKSTATION ) return WIN_7; return -1; } void pc() { string pc_buffer; string pc; fstream pclist_in("pc.list", ios::in); pLog->Write("pc.list gesucht\n"); if(pclist_in.good()) { pLog->Write("pc.list erfolgreich geöffnet\n"); while(!pclist_in.eof()) { getline(pclist_in,pc_buffer); if(pc_buffer =="\n") { v_pc.push_back(""); } else { v_pc.push_back(pc_buffer); } } /* for(int i = 0; i<v_pc.size(); i++) { cout << v_pc.at(i) << endl; } getch();*/ } else { pLog->Write("Fehler beim öffnen der pc.list \n"); } }
-
I lol'd hard.
-
Ja, ich weiß. Ein guter Programmierer hätte das sicher in 100 Zeilen maximal untergebracht...

Aber Einsicht ist ja der erste Schritt zur Besserung.
Konnte halt nur Strings. Mehr war noch nich drin^^
-
I lol'd.
if(end>0) { fstream userlist_in("user.list", ios::in); pLog->Write("user.list gesucht\n"); if(userlist_in.good()) { pLog->Write("user.list erfolgreich geöffnet\n"); while(!userlist_in.eof()) { getline(userlist_in,buffer); user+=buffer; user+="\n"; if(buffer.length()==0) { pLog->Write("Länge der Zeile aus user.list = 0\n Eintrag wird übersprungen!\n"); } else { pLog->Write(" Buffer geschrieben\n "); } } } userlist_in.close(); end = user.find_first_of("\n"); for(i=0; i<=end-1;i++) { substr += user[i]; } user.erase(0,end+1); fstream userlist_out("user.list", ios::out); userlist_out << user; userlist_out.close(); if(substr.length()!=0) { pLog->Write("Username (substr) = Check (!=0)\n"); username = substr; cout << "*Bitte warten* Aktueller User: " << username << endl; system("cls"); anzahluser++; cout << anzahluser; string pcnamen[20]; bool verlassen = false;; int position1, position3 =0; cout << "User: " << username << " PC-Name:" << v_pc[anzahluser-1] << endl; position1 = v_pc[anzahluser-1].find("\n",0); do { int position2 = 0; int pos_temp=0; string pcn; position2 = v_pc[anzahluser-1].find(";",position3); if(position2 == string::npos) { verlassen = true; } pos_temp = position2 - position3; pcn = v_pc[anzahluser-1].substr(position3,pos_temp); position3 = position2+1; insert(username,pcn); }while(verlassen == false); pLog->Write("-----------Neuer User--------------\n"); pLog->Write("-------------------------------------\n"); } else { pLog->Write("Username (substr) =0\n"); do { int manuelleruser; manuelleruser = MessageBox(NULL,"User-List zuende. Manuell weitere User eintragen?\n","SapLogon Update",MB_YESNO | MB_ICONQUESTION ); switch(manuelleruser) { case IDYES: { char janein, janein2; HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_SHOW); string substr, pcnamen; cout << "Usernamen eingeben: " << endl; cin >> substr; cout << "Meinten sie " << substr << "?" << endl; cout << "[J]a / [N]ein" << endl; cin >> janein; cout << "PC-Namen eingeben: " << endl; cin >> pcnamen; cout << "Meinten sie " << pcnamen << "?" << endl; cout << "[J]a / [N]ein" << endl; cin >> janein2; if(janein == 'J' || janein == 'j') { HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_HIDE); if(janein2 == 'J' || janein2 == 'j') { username = substr; insert(substr, pcnamen); } } break; } case IDNO: { close = true; HWND hwnd = FindWindow("ConsoleWindowClass",NULL); ShowWindow(hwnd,SW_HIDE); break; } } }while(close != true); } } else { pLog->Write("int end =< 0"); close = true; }but then i serious'd.
-
Funktionen, Rückgabewerte und call by reference konntest du ja schon. Zumindest die sich drei mal wiederholende push_back-Arie hättest du ja irgendwo hinpacken können.
Ist es eigentlich Absicht, dass sich die dritte Ausführung von den ersten beiden dadurch unterscheidet, dass du da weniger " " und mehr "" in ersetze reinschiebst, oder bist du da schon selbst Opfer deiner eigenen Kopierpasta geworden?
-
LordJaxom schrieb:
I lol'd hard.
I lol'd even harder.
1. Zu viele globale Variablen!
2. Was sucht die Konsole in deiner GUI-Anwendung -> raus damit
3. logisch dünnes:cout << "*Bitte warten* Aktueller User: " << username << endl;
system("cls");Ich würde sagen, der Nutzer bekommt den Text effektiv nie zu sehen, weil er direkt wieder verschwindet

4. keine einheitliche Bezeichnungen... (über die partielle Verwendung deutscher Bezeichner braucht man hier gar nicht erst reden)
5. Zu viele unsinnige und zu wenig nützliche Kommentare -> Code-Doku = 0
6. Ich konnte jetzt auf die Schnelle nicht ausmachen, wofür du stdio.h brauchst,
aber wenn überhaupt, heißt es <cstdio> und <stdlib> (system() wird übrigens nicht empfohlen, damit dürfte auch cstdlib rausfliegen)
7. Dein globales Log braucht kein Zeiger zu sein, einfach das Objekt so anlegen
8. Du brauchst theoretisch das Betriebssystem nicht zu ermitteln, da die WinAPI eine hübsche Funktion beinhaltet, die dir das AppData-Verzeichnis zurückgibt.
9. Do not do this!string item(string array); //... array = item(array);So, das reicht erstmal...
-
Das mit den globalen Variabeln habe ich selbst gesehen! Nur irgendwann, ich gestehe es ein, hatte ich so viele Funktionen und Variabeln, dass ich einfach nicht mehr durchgestiegen bin, welche Funktion wann welche aufruft und und welche Variabeln übergeben werden.
Dann hatte ich einmal kurz die Funktionsweise von Referenzen udn zeigern verwechselt und das Chaos war perfekt! Aber Spaß hat es trotzdem gemacht, dass zu schreiben

Und danke für die Rege Kritik, hab ja auch selber über den Zeilensalat da gelacht. Vielleicht setzt ich mich am Wochendende mal dran, und überleg VORHER wie ich das angehe. Problem war gewesen, dass mein 'Auftraggeber' nie die ganze Geschichte erzählt hat. erst sollte nur ein Eintrag gemacht werden, dann kam diese Geschichte mit den Vektoren, dann hieß es auf einmal, dass in manchen Datein die Einträge eventuell fehlen können. Dann, dass manche XP und Manche WIN7 haben etc...^^^