
nefertari001
Mitglieder-
Gesamte Inhalte
26 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von nefertari001
-
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
-
hi da ich wirklich keine kenntnisse in C++ habe tue ich mir momentan wahnsinnig schwer. Ich habe eine Methode die mir die benötigte Größe für ein Array berechnet. Jetzt möchte ich dieses Array so anlegen,dass ich es später mit bestimmten werten füllen kann. Hatte zuerst die größe als übergabe wert im constructor und hab dann dorkt im Konstruktor das array angelegt und erstmal mit aufeinanderfolgenden zahlen gefüllt. Da ich die Größe aber jetzt erst berechnen muss kann ich sie ja im constructor nicht mehr übergeben. Ich komm hier nicht klar da ich ein array ja nicht als rückgabewert bestimmen kann. Wie löse ich das am besten. wollte in der Klasse ein short testarray[] anlegen aber da will er immer eine größe haben und die kenn ich ja noch nicht. danke Sonja
-
Danke es funktioniert so. Da wär ich aber im Leben nicht drauf gekommen und komplett verstehen tu ich´s au net. Wegen umdrehen war ich mir au erst sicher das ich das machen muss, aber da kommen keinen realen Werte raus deswegen fällt das umdrehen wohl doch weg. Gruß und danke nochmal Sonja
-
Hi also ich hab es jetzt soweit, das ich an einer bestimmten Stelle ein Byte als Dezimalzahl auslesen kann. Mein Problem ist jetzt noch, dass ich 2 Byte brauche. Diese 2 Byte geben eine Höhe über grund an. Ich brauche also 2 aufeinander folgende Byte als Dezimalzahl ausgegeben. Jemand ein Idee. so sieht es bisher mit einem Byte auslesen aus. char hex = '0' ifstream myfile ("n26.min"); myfile.seekg(3500); if(myfile) myfile.get(hex); printf("%d", hex); cout << " "<< endl; myfile.close(); Gruß Sonja
-
hi also es sieht jetzt so aus. Ich lese eine Datei ein, mal egal woher. Diese Datei ist eine .min Datei und hat einen Header der in ASCI ist und einen data rumpf in hex. Ich hab jetzt versucht diese datei in einen String zu stecken da ich an eine ganz bestimmte stelle im Data Rumpf springen muss. mein code sieht mal so aus. ifstream file; string fileName = "n38.min"; file.open(fileName.c_str(), ios::in);//| ios::binary); // oeffen im Binaer-Modus if(file) { file.seekg(0, ios::end); // zum Ende Datei springen long fileSize = file.tellg(); // Dateigroesse auslesen file.seekg(0); // Zurueck zum Anfang springen //int pos = file.tellg(); char *text = new char[fileSize]; // Speicher fuer Text anlegen file.read(text, fileSize); // Text in 1 Rutsch auslesen file.close(); cout << text; delete text; // Speicher aufraeumen } else { cout << "Fehler!"; } cin.get(); return 0; jetzt zeigt es mit in der console nur den header an. wenn ich einen bestimmten bereich wähle zeigt er nur streifen. was kann ich machen um hier ein bestimmtes Byte auszulesen. hilfe!!!
-
hi also jedes Feld der Matrix beinhaltet 2 .min Dateien. Diese muss ich auslesen und den darin enthaltenen Bytestream an einer bestimmten Stelle auslesen. gruß
-
Hallo ich hab einen 2 dim array angelegt, in diesem array sollen dateien abgelegt werden. jetzt bekomme ich eine Position übergeben und soll an diese Stelle im array springen und diese datei dann einlesen und anschließend damit noch weiterarbeiten. der befehl für das einlesen wäre ja ifstream myfile ("n38.min"); und dann mit seekg und tellg damit weiterarbeiten. aber wie mache ich das mit einem Array von Dateien. vielen dank Soni
-
#include <iostream> #include <fstream> using namespace std; int main () { int begin,end; int zahl; //datei ifstream myfile ("n53.max"); begin = myfile.tellg(); //myfile.seekg (0, ios::end); //position von der ich meinen Wert haben möchte myfile.seekg (3442); end = myfile.tellg(); myfile.close(); cout << "size is: " << (end-begin) << " bytes.\n"; cout << "high is: " << zahl << " meter.\n"; return 0; } so das hab ich jetzt fabriziert. wie bekomme ich jetzt den Inhalt von "end" mit get? Gruß
-
also hier der Link: NIMA: Geospatial Standards and Specifications und dann MIL-PRF-89020B anschauen. also ich muss jetzt quasi rausfinden wie das mit diesem hexdump abläuft. Und die idee mit dem ofstream?
-
also in der Spezifikation steht eben: .min file are composed of a motorola Format two (2) byte integer strukture. Und setzt sich zusammen aus Hader Label, Identifikation record, Accuracy Record und Data Record und alles außer dem Data Record kann man im Editor lesen. Da es sich im date record um Höhendaten handelt kann es schon gut sein, dass das alles integer sind. Kannst du mir ein bischen genauer erklären wie du das gemeint hast : "ohne string" Danke
-
hi also das problem ist ich kann die Datei nur teilweise lesen. Der erste Teil ist die Bytereihenfolge der header und der identifikation. aber den eigentlichen Datenteil mit den Höhendaten kann ich nicht lesen. Allerdings weiß ich das die 4 bytes die ich brauche an Stelle 2040 stehen. Mir würde es schon helfen wenn jemand mir sagen kann wie ich diese datei in einen String packen und vielleicht ausgeben kann. Gruß Sonja