
nefertari001
Mitglieder-
Gesamte Inhalte
26 -
Benutzer seit
-
Letzter Besuch
-
Windows XP API konnte nicht geladen werden
nefertari001 antwortete auf nefertari001's Thema in Windows
hi clodetta, danke für die Antwort. <<@Sonja: hm, was gibt denn f8 her? also, ich meine, hast du schon 'Letzte als funktionierend bekannte Konfiguration' pobiert?>> Hab ich probiert geht aber auch nicht. Leider handelt es sich auch noch um einen Laptop platte ausbauen wird daher schwierig. Lg Sonja -
Windows XP API konnte nicht geladen werden
nefertari001 antwortete auf nefertari001's Thema in Windows
MIttlerweile hat sich der Rechner jetzt komplett abgemeldet. Kann ihn Nicht mehr hochfahren, dann kommt die Fehlermeldung lssas.exe blablabla und er versucht neu hochzufahren. Ich komme nicht mal mehr in den abgesicherten Modus. Irgendwelche guten Ideen außer alles runter und neu drauf :-) Sonja -
Hallo zusammen, also mein Problem. Das erste war das mein Explorer nicht mehr reagiert hat und ich ihn daraufhin mit dem Taskmanager beenden musste. Seit dem fährt windows hoch und bevor die Benutzeroberfläche angezeigt wird kommt die Fehlermeldung "API konnte nicht geladen werden" daraufhin macht der PC einen Neustart und dieses Spielchen wiederholt sich immer wieder. Hatte jemand schon mal dieses Problem oder weiß wie man es beheben kann. Wär echt super muss dringend an meine Daten. Gruß Sonja
-
sorry hat sich erledigt hab´s selbst hingekriegt
-
ah ich hab was gefunden erschließt mir das fp net deswegen steht immer etwas drin und er geht net in die untere if. if(fp != NULL) { fclose(fp); } wie könnte man das machen
-
hi zusammen, musste mein File einlesen auf fread umstellen, leider funktioniert die If Abfrage net. Wenn er das File nicht findet springt er in keine der beiden If Abfragen. Jemand eine Idee. Danke fp = fopen( ss.str().c_str(), "r+b" ); if(fp != NULL) { fread(sData, sizeof(char), 34000, fp); for(int a = 0; a < iNumberRecord; a++) { for(int b = 0; b < iNumberElevation; b++) { iPos = iConstStartData + (b * 2) + (a * iConstByteData); value = *( (short*)&sData[iPos] ); value = ((value & 0xff) << 8) | ((value & 0xff00) >> 8); yourArray[c] = value; ++c; } } } //if((fp = fopen( ss.str().c_str(), "r+b" )) == NULL) if(fp == NULL) { for(c; c < iValue; c++) { yourArray[c] = 0; } }
-
iConstByteData ist 252 und size ist unterschiedlich groß. z.B. 86400.
-
hab alles mal so "verschönert". Hilft aber leider bei meinem eigentlichen Problem net weiter. Aber hast scho recht ist ein Kuddelmuddel.
-
constStartData ist 3436. Deswegen geht das mit (a +1) auch so net.
-
iCount = 1; int i = 0; yourArray = new unsigned short [size]; unsigned short value = 0; ostringstream ss; ifstream myfile("000.txt"); FILE* fp = NULL; char* sData; sData = new char[size]; char* sSub; sSub = new char[10]; //short** iwert = new (short*); short** iwert = new short*; for(long c = 0; c < size; c++) { for(int i = 0; i <= iLong; i++) { for(int j = 0; j <= iLat; j++) { if(fp != NULL) { fclose(fp); } ostringstream ss; ss << "C:\\Dokumente und Einstellungen\\hagedornSo\\Eigene Dateien\\OPES15\\Hhendaten\\e" << iCornerLong << "n" << iCornerLat <<".min" << ends; fp = fopen( ss.str().c_str(), "r" ); if(fp != NULL) { fgets(sData, size, fp); for(int a = 0; a < iNumberRecord; a++) { for(int b = 0; b < iNumberElevation; b++) { int iByte = iConstStartData; iPos = iByte + (b * 2) + (a * iConstByteData); *iwert = (short*)&sData[iPos]; value = **iwert; value = ((value & 0xff) << 8) | ((value & 0xff00) >> 8); yourArray[c] = value; c = c++; } } } if(fp == NULL) { for(c; c < iValue; c++) { yourArray[c] = 0; } } iCornerLat = iCornerLat + 1; } iCornerLong = iCornerLong + 1; iCornerLat = iCornerLat - iLat-1; } } so leider gibt es immer noch Probleme. Es läuft alles optimal bis a =10. iPos = 5956, das ist korrekt und iwert sollte auf den richitigen Wert aus sData zeigen. Aber Value = 52685 und das gilt auch für alle nachfolgenden Durchläufe. c = 1200 an dieser Stelle. Eine Position davor ist alles noch korrekt. Ich weiß nicht was dieses 52685 sein soll und wo das herkommt. Einzige Idee die ich hatte ist,das ich vielleicht irgendwo drüberlauf aber das find ich nicht. In der Datei die ich einlese ist alles in Ordnung. Kein unterschied zu dem Schleifendurchlauf davor. Hoffe jemand hat eine Idee. Gruß Sonja
-
Ja hab das Problem gelöst. Das nächste ist das wenn er das 2. mal in die j Schleife geht, dass er kein fp einliest obwohl die Datei existiert. Könnte das an dem fclose() liegen oder an dem oStringStream. Die if abfrage mit fclose habe ich schon mal auskommentiert das brachte aber nicht nichts. Hab mit stringstreams vorher noch nix gemacht, weiß daher nicht ob ich die in jedem Schleifendurchlauf neu schreiben darf. Gruß Sonja
-
hey jetzt hatte ich das teil gerade am laufen. Mit Ifstream und so fort, da kommt mein Prof. und meint erhält nix von diesen neumodischen Sachen soll es mit Strings machen. Mein Problem hier ist. Im 1. Schleifendurchlauf füllt er brav meinen String sData und liest mir die richtigen Daten aus. Aber im 2. Durchlauf steht irgendwie nichts mehr meine Datei in sData. Vielleicht kann mir jemand helfen, der sich mit diesen String Dingern auskennt. int iCornerLat; int iCornerLong; int iLat = 0; int iLong = 0; int iPos = 0; unsigned short value = 0; ostringstream ss; ifstream myfile("000.txt"); FILE* fp = NULL; char* sData; sData = new char[50000]; char* sSub; sSub = new char[10]; short** iwert = new (short*); for(int c = 0; c < size; c++){ //Schleife durchluft Array for(int i = 0; i <= iLong; i++){ //Jedes 1x 1 Zelle der Gaming Area ablaufen, erst Breiten dann Lngengrade for(int j = 0; j <= iLat; j++){ if(fp != NULL) fclose(fp); ss << "C:\\Dokumente und Einstellungen\\hagedornSo\\Eigene Dateien\\OPES15\\Hhendaten\\e" << iCornerLong << "n" << iCornerLat <<".min"; fp = fopen( ss.str().c_str(), "r" ); if(fp){ for(int a = 0; a < iNumberRecord; a++){ for(int b = 0; b < iNumberElevation; b++){ int iByte = iConstStartData; iPos = iByte + (b * 2) + (a * iConstByteData); //Byteposition im File berechne fgets(sData, 40000, fp); *iwert = (short*)&sData[iPos]; //!!!!!!!hier steht wenn b = 1 nix mehr value = **iwert; value = ((value & 0xff) << 8) | ((value & 0xff00) >> 8); c = c++; } } } else { for(c; c < iValue; c++) { //wenn File nicht vorhanden 0 schreiben yourArray[c] = 0; } } iCornerLat = iCornerLat + 1; } iCornerLong = iCornerLong + 1; iCornerLat = iCornerLat - iLat; } } if(myfile) myfile.close(); sorry, dass den ganzen code reinstell wusste aber net wie ich´s ohne erklären soll. danke Sonja
-
hey super danke, ein typischer Copy/Paste Fehler :upps jetzt kann ich erstmal wieder ein bischen weitermachen, bis ich an die nächste Hürde stoße Danke Sonja
-
hab´s probiert, er gibt mir aber nur eine null aus wenn ich versuche an eine bestimmte stelle in dem file zu springen. Das ist aber falsch also vermute ich mal es klappt leider nicht. unsigned short value = 0; ostringstream ss; int val1 = 85; int val2 = 26; ss << "C:\\Dokumente und Einstellungen\\hagedornSo\\Eigene Dateien\\OPES15\\Hhendaten\\e" << val1 << "n26.min"; ifstream myfile( ss.str().c_str() ); //ifstream myfile ("C:\\Dokumente und Einstellungen\\hagedornSo\\Eigene Dateien\\OPES15\\Hhendaten\\e85n26.min"); myfile.seekg(3437); myfile.read( reinterpret_cast<char*>( &value ), sizeof( unsigned short ) ); myfile.close(); yourArray[3] = value; cout << "test array " << yourArray[3] << endl; return yourArray;
-
Hallo so weit so gut. Ich hab jetzt also mein Array und einen Ordner der alle Dateien enthält aus denen ich Daten auslesen muss. Wie kann ich ein Variable in meine Pfadangabe einfügen, so das ich immer den passenden Eintrag an die richtige Stelle im Array schreibe. so sieht es jetzt aus. ifstream myfile ("C:\\Dokumente und Einstellungen\\hagedornSo\\Eigene Dateien\\OPES15\\Hhendaten\\e85n26.min"); für e85 und n26 veränderbare Werte eingesetzt werden können, also brauche ich etwas in der art: ifstream myfile ("C:\\Dokumente und Einstellungen\\hagedornSo\\Eigene Dateien\\OPES15\\Hhendaten\\"+ variable+""+Variable2+".min"); weißt jemand wie das in C++ geht. Danke Sonja