Bimminger
christoph-bimminger.at
|
Dieser Code stürzt ab... im makebak bereich... wer weis wieso?
// htmlcoder.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung. //
#include "stdafx.h" #include "htmlcoder.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // Das einzige Anwendungsobjekt
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { int nRetCode = 0;
// MFC initialisieren, Ausgabe und Fehlermeldung bei Fehlern if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { cerr << _T("Fatal Error: MFC initialization failed") << endl; nRetCode = 1; } else { if (argc==1) { cout<<"Kein Parameter angegeben\n\n"; cout<<"Aufruf: htmlcoder <filename> [/makebak]\n\n"; cout<<"/makebak erstellt von der zu bearbeitenden Datei eine Sicherung mit der\n Endung .bak wobei bestehende Sicherungen überschrieben werden.\n\n"; } else { CFile myfile; char buffer[4096]; CString Filename,FilenameBak; bool makebak=false, unknown=false;
for (UINT paramCounter=3;paramCounter<=argc;paramCounter++) { CString Param; Param.Format("%s",argv[paramCounter-1]); Param.MakeUpper(); if (Param=="/MAKEBAK") makebak=true; else unknown=true; }
if (unknown) { cout<<"Mindestens ein Parameter wurde nicht erkannt.\n\n"; cout<<"Aufruf: htmlcoder <filename> [/makebak]\n\n"; cout<<"/makebak erstellt von der zu bearbeitenden Datei eine Sicherung mit der\n Endung .bak wobei bestehende Sicherungen überschrieben werden.\n\n"; } else {
Filename.Format("%s",argv[1]); FilenameBak.Format("%s.bak",argv[1]); cout <<FilenameBak.GetBuffer(0);
//open source file myfile.Open (Filename.GetBuffer(0),CFile::modeRead); UINT filelength=myfile.Read(buffer,4096); myfile.Close ();
CString FileContent; FileContent.Format("%s",buffer); FileContent=FileContent.Left(filelength); //save bak file if (makebak) { myfile.Open (FilenameBak.GetBuffer(0),CFile::modeWrite); myfile.Write (FileContent.GetBuffer(0),FileContent.GetLength()); myfile.Close (); } //replace special characters FileContent.Replace("ä","ä");
//write dest file myfile.Open (Filename.GetBuffer(0),CFile::modeWrite); myfile.Write(FileContent.GetBuffer(0),FileContent.GetLength()); myfile.Close (); } } }
return nRetCode; }
thx, CB
|
Bimminger
christoph-bimminger.at
|
koompileren, und aufruf mit zB htmlcoder c:\source.htm /makebak
ohne dem makebak gehts.... dh derselbe code der ja weiter unten die output-file schreibt,.....
mfG CB
|
Ringding
Pilot
|
Dann schau halt im Debugger, was schief läuft.
|
Bimminger
christoph-bimminger.at
|
im debugger hab i netürlich scho nachgsehn. eh klar. aba da erkennt ma a nix.
-> er erkennt den absturz im CFile::Write, aba wenn i ma de Ursache im main anseh dann erkennt er dass er scho im CFile::Close is...
und der Source is ansich genau derselbe fürs speichern der bakfile und der outputfile... nur bei der bak geht er eben net.
mfG CB
|
Bimminger
christoph-bimminger.at
|
aaahm sorry.. jetzt gehts eh scho. hab nur das modeCreate für die bak-file net gmacht...
mfG CB
ps: wenn das tool wer braucht... is zum umlaute in code verwandeln f. HTML... gibts zum Download im "Website FF Neukematen" thread...
Bearbeitet von Bimminger am 10.12.2001, 14:56
|
bBU.CyTrobIc
#include "billrulz.h"
|
also ich hätt das mit PHP gemacht ... fast gleiche syntax aber kein nerviger compiler cy
|
Bimminger
christoph-bimminger.at
|
MIR IS WICHTIG das es a compiler-sprache is... naja - die alte einstellung zu interpretern halt ;-) also ich bin wür BINARIES!!
mfG CB
|