"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

C++ Konsole mit MFC

Bimminger 10.12.2001 - 09:34 1552 6
Posts

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
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
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
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
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Dann schau halt im Debugger, was schief läuft.

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
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
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
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"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
also ich hätt das mit PHP gemacht ... fast gleiche syntax aber kein nerviger compiler :D

cy

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
MIR IS WICHTIG das es a compiler-sprache is... naja - die alte einstellung zu interpretern halt ;-) also ich bin wür BINARIES!!

mfG CB
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz