Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
03.03.2002, 10:14
Gnomo



Hi!
Wie kann man Log-dateien machen?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
03.03.2002, 10:50
Tron



wie waer's mit einer datei als ofstream oeffnen und text reinschreiben?!

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
002
03.03.2002, 11:17
Gnomo



Wäre nett, wenn du beispielcode posten könntest. Ich bin noch newb.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
03.03.2002, 11:28
Mazze



Kannst du C mäßig machen:
FILE* file = fopen("hallo.txt", "rb");

Das "rb" heißt afaik read binary. Da gibts noch ein paar andere.

Dann kannst du so in die Datei schreiben:
fprintf(file, "hi");

Oder im C++ Style:
Mit ofstream!
ofstream of;
of.open("hallo.txt");

of.write(buf);

C wird wohl schneller sein.
C++ evtl komfortabler.

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
004
03.03.2002, 11:42
Gnomo



@Mazze:Das im C Style funktioniert nicht

--

zum Seitenanfang zum Seitenende Profil || Suche
005
03.03.2002, 12:12
Archangel



klar funktioniert das nicht, es muss nämlich "w" für write heißen.. dass man in eine für read-geöffnete datei nich schreiben kann , is doch wohl klar

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
006
03.03.2002, 13:02
Tron



Zitat:
Gnomo postete
Wäre nett, wenn du beispielcode posten könntest. Ich bin noch newb.

arg... langsam bekomme ich de javus (oder wie man das schreibt, kann kein franz)
kauf dir ein C(++) buch! saug dir c(++) tuts!
das ist nun echt keine frage fuer ein forum!

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett


Dieser Beitrag wurde am 03.03.2002 um 13:02 von Tron bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
03.03.2002, 13:09
Gnomo



@tron: ich hab genug tuts und bücher
Und wieso is das keine frage für ein forum???

--

zum Seitenanfang zum Seitenende Profil || Suche
008
03.03.2002, 13:12
m.a.b.b.b



weil sowas üblicherweise in den büchern drinsteht...

--

-=B.L.Ä.N.D.E.R=-

zum Seitenanfang zum Seitenende Profil || Suche
009
03.03.2002, 13:31
Archangel



und weil das eigentlich grundwissen ist, und wir hier in den foren bei problemen helfen, aber keinem das coden beibringen!

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
010
03.03.2002, 14:06
Gnomo



na ja in meinen c++ büchern und tuts steht nichts darüber, aber is jetz ehal, da ich dass jetz selbst hingekriegt habe.

--

zum Seitenanfang zum Seitenende Profil || Suche
011
03.03.2002, 15:04
Prefect



Was sind denn das für Bücher, die keine Dateiausgabe behandeln?
Und auf die Idee, daß Logdateien auch nur Dateien sind sollte man eigentlich selber kommen können, wenn man programmieren will.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
012
03.03.2002, 16:03
Mazze



Zitat:
Tron postete
de javus (oder wie man das schreibt, kann kein franz)

=)
déjà vu
(schon gesehen)

Bin zwar schlecht in Franz aber das schaff ich noch ;)

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
013
03.03.2002, 17:57
apfelkorn



ich habs so gemacht:

class CLog
{
public:
CLog ( char* filename );
~CLog ();

bool output( char* text, ...);
private:
FILE* logfile;
const char* filename;
};

CLog::CLog ( char* file )
{
filename = file;

if(!(logfile=fopen( filename, "wb" )))
return;

fclose(logfile);
}

CLog::~CLog ()
{
if(logfile)
fclose(logfile);
}

bool CLog::output( char* text, ...)
{
va_list arg_list;

va_start(arg_list, text);
if((logfile = fopen( filename, "a+"))==NULL)
return FALSE;

vfprintf(logfile, text, arg_list);

fclose(logfile);
va_end(arg_list);

return TRUE;
}

CLog* log;
log = new CLog( "log.log" );
log->output("GNARF!\n");
delete log_client;

--

zum Seitenanfang zum Seitenende Profil || Suche
014
03.03.2002, 19:24
Pa



@apfelkorn ...
Das ist aber n' ziemlich großer block nur für ne logfile?
mit VB brauch ich net mal 10 zeilen :-) greez ...

--

_______________
cooldata.org - real bugware

zum Seitenanfang zum Seitenende Profil || Suche
015
03.03.2002, 21:14
Diablo_bth



hehe VB - ich kann nicht verstehen wie man mit so ner Rohrkrepierersprache überhapt Programmieren kann. ( M$-Bullshit^10 )

--

zum Seitenanfang zum Seitenende Profil || Suche
016
04.03.2002, 14:48
apfelkorn



@dbh.: deinetwegen, aber
1. Kann man mit meiner Funktion ganz nach dem Motto von print-funktionen in c-includes (fast) unendlich viele argumente eingeben und
2. sieht es viel professioneller aus :)

--

zum Seitenanfang zum Seitenende Profil || Suche
017
11.03.2002, 11:54
crupp



noch ein kleiner Tip zu deinen Ausgabefunktionen: auf einigen Systemen (GNU) gibt's fnprintf, das ist sicherer. Ausserdem kannst du Makros machen, um auch noch gleichzeitig die Datei und Funktionsnamen und Line-Nummer auszugeben:

#define LOG(x) debug->Log(__FILE__, __FUNCTION__, __LINE__, x)

problematisch ist dass die meisten Compiler noch keine variablen Argumente in Makros unterstützen, also musst du entweder recht viele LOG-Makros machen:
LOG1(x)
LOG2(x, y)
LOG3(x,y,z)
etc
oder irgendwie mit globalen Variablen das ganze hintricksen. Vorteil des ganzen ist auch dass man in Release-Versionen die ganzen Makros rauskompilieren kann; wenn man viele Log-Ausgaben hat wird das Programm ein Stückchen schneller.

cu
Chris

--

zum Seitenanfang zum Seitenende Profil || Suche
018
11.03.2002, 15:03
Another1



macht sich einfach ne static_sprintf function, dann geht das wunderbar =)

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche