Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Odbcexceldaten in Array schreiben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
09.04.2003, 22:33 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Der Fehler mit dem Escape Zeichen muss 99%ig bei

C++:
HANDLE hFile = CreateFile(_T("C:\\Temp\\DB.DAT"),...


überprüf das nochmal

Warum das mit CFile nicht geht - keine Ahnung. Mag er anscheinend net, dass man MFC mit Win32 mischt!? Keine Ahnung - Werd der Sache aber noch auf den grund gehen!

C++:
CFile file(path,CFile::modeWrite | CFile::modeCreate);
file.SeekToEnd();
file.Write(strTemp, strTemp.GetLength());
file.Close();


statt modeCreate gibts irgendwas, damit er die Datei nicht überschreibt. Find ich momentan leider nicht mehr -> versuchs mal in der MSDN

mfg mike :)
PS: Dü konntest auch die WIN32 Funktion WriteFile verwenden
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
09.04.2003, 22:36 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Wegen dem deklarieren von strTemp: Da du die Datei sowieso irgendwann wieder mal auslesen willst, kannst du eigentlich nach jedem lesen schreiben = 1 mal strTemp deklarieren und ein Trennzeichen einfügen. Kenn mich aber mit großen CFiles net so gut aus. Man muss da mit den Buffern aufpassen.

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
09.04.2003, 22:43 Uhr
~spunky2
Gast


Danke für Deine Hilfe!
Das hat mir schon sehr weitergeholfen
Ich hoffe, daß ich das mit dem File noch irgendwie hinbekomme.

Echt super, wenn man auf so kompetente Hilfe zählen kann.

Grüsse spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
09.04.2003, 23:13 Uhr
~spunky2
Gast


Hi!

CFile file("DB.DAT",CFile::modeWrite | CFile::modeCreate);
file.SeekToEnd();
strTemp = m_pSet->m_NR;
file.Write(strTemp, strTemp.GetLength());
file.Close();

Hab jetzt statt dem kompletten Pfad mal nur "DB.DAT" eingegeben.
Da kommen keine Fehlermeldungen mehr, aber er zeigt beim Ausführen eine Zugriffsverletzung auf DB.DAT an ?????

Grüsse
spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
09.04.2003, 23:29 Uhr
~spunky2
Gast


CFile file("C:/Temp//DB.DAT",CFile::modeWrite | CFile::modeCreate);
file.SeekToEnd();
strTemp = m_pSet->m_NR;
file.Write(strTemp, strTemp.GetLength());
file.Close();

Wenn ich statt\ ein / eingebe, kommt immer noch die Zugriffsverletzung, aber er legt im Pfad eine 0Byte Datei mit dem Namen DB.Dat an.

????

Grüsse spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
10.04.2003, 11:05 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Also bei mir hat folgendes funktioniert

CString str = "Test";

for(int i=0; i < 5; i++) {
CFile file("C://Temp//DB.DAT",CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate);
file.SeekToEnd();
str += "A";
file.Write(str, str.GetLength());
file.Close();
}

Die Datenbankstruktur geht leider Verloren - außer du fügst Trennzeichen ein
Schau dir einfach mal das Sample an
www.mut.de/media/buecher/VCPLUS6/data/kap13.htm

Das ist eine andere Lösung

mfg mike :D
--

Dieser Post wurde am 10.04.2003 um 11:06 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
10.04.2003, 12:42 Uhr
~spunky2
Gast


Hi,

Er bringt keine Fehler beim kompilieren, aber immer eine Messagebox mit dem Error Zugriffsverletzung auf C://Temp//DB.DAT.
Woran könnte das liegen?

Grüsse
spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
10.04.2003, 13:26 Uhr
~spunky2
Gast


Ok, die Zugriffsverletzung kommt nicht mehr, hab nur vergessen das CreateFile zu löschen.

Wie hast Du das mit den Trennzeichen gemeint? Könntest Du das bitte auf meine Datenbank spezifizieren?

NR R_H R_M R_S ED D_H D_M D_S ED HELL
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...
usw.
Also so sollte das File aussehen, wenn er den RecordSet da reingeschrieben hat.
Bis jetzt kann ich immer nur einen Wert reinschreiben.

Danke Dir schon mal im vorraus.

Grüsse
spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
10.04.2003, 14:40 Uhr
~spunky2
Gast


Hi,

hab das jetzt irgendwie hingekriegt. Nur der Zeilenumbruch klappt nicht so richtig. Wenn ich die erstellte Datei in Excel einlade erkennt er den Zeilenumbruch zwar. Aber ich weiß nicht ob er ihn auch bei fscanf erkennt, wenn ich die Daten in ein Array schreiben will.

Mein Code sieht jetzt so aus:

CFile file("E://Ablage//DB.DAT",CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate);
file.SeekToEnd();
m_pSet->MoveFirst();
while ( !pSet->IsEOF( )) {
CString str = m_pSet->m_NR;
str += " ";
file.Write(str, str.GetLength());
CString str1 = m_pSet->m_R_H;
str1 += " ";
file.Write(str1, str1.GetLength());
CString str2 = m_pSet->m_R_M;
str2 += " ";
file.Write(str2, str2.GetLength());
CString str3 = m_pSet->m_R_S;
str3 += " ";
file.Write(str3, str3.GetLength());
CString str4 = m_pSet->m_ER;
str4 += " ";
file.Write(str4, str4.GetLength());
CString str5 = m_pSet->m_D_H;
str5 += " ";
file.Write(str5, str5.GetLength());
CString str6 = m_pSet->m_D_M;
str6 += " ";
file.Write(str6, str6.GetLength());
CString str7 = m_pSet->m_D_S;
str7 += " ";
file.Write(str7, str7.GetLength());
CString str8 = m_pSet->m_ED;
str8 += " ";
file.Write(str8, str8.GetLength());
CString str9 = m_pSet->m_HELL;
str9 += " ";
file.Write(str9, str9.GetLength());
CString str10 = "\n";
file.Write(str10, str10.GetLength());
m_pSet->MoveNext( );
}
file.Close();

Glaubst Du, daß er den Zeilenumbruch bei fscanf erkennt?

Grüsse
spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
10.04.2003, 15:59 Uhr
~spunky2
Gast


hmmm...
fscanf akzeptiert er nicht.
Gibt es eine Möglichkeit, das File über Read() in ein Array zu schreiben?

Grüsse
spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: