string auslesen



  • Hi,
    Ich und mein Kumple schreiben aus Fun einen Demoplayer für Counter Strike, soweit sind wir schon fertig, nun möchte ich aber, dass Name der Map ausgegeben wird, wenn man die demo auswählt. Ich hab aber null Ahnung wie das geht, wäre nett, wenn jemand helfen könnte, ich würde den Namen in AuboutDlg erwähnen 🙂
    Also, ich möchte die zweite Zeile auslesen.
    Hier ist Link zum Bild vom Filequellcode:
    http://www.cs-expert.de/tfh/uploads/string.gif



  • Was den das für ein Fileformat?
    Beginnt der Name immer an der gleichen stelle eim File?

    Öffen der Datei als BIN und den Filezeiger an diese Stelle bewegen. Dann auslesen
    bis kein Zeichen mehr kommt.
    Musst etwas genauer über das Format der Map sein.



  • Die dateien haben Endung .dem
    Mapname steht immer in der zweiten Zeile, ich glaube, dass es einfach ne Binäre Datei ist. Im Internet finde ich jedoch keine Infos wie man diese bearbeiten kann.



  • es gibt keine zeilen in einer BIN-Datei. Nur in Textdateien und da gibt es eigentlich auch keine Zeilen nur zeichen \r\n die das aufrufende Programm veranlassen einen Zeilenumbruch zu machen. Wenn du eine Datei öffnen und auslesen willst musst du dich vorher über das Format der Datei informieren. Wo steht was in der Datei. Du kannst da nicht einfach danach suchen (2te Zeile) sowas gibt es in der Datei nicht.
    Du musst herausfinden an welcher Stelle der Name steht.
    Wenn das nicht geht dann einfach X-Bytes auslesen und jedes überprüfen ob es ein Zeichen ist. (Was aber wenn vorher auch noch Zeichen drin stehe?)
    Du siehst das etwas vorarbeit von dir notwendig ist. Eigentlich die Hauptaufgabe ist diese Theorie den die Praxis ist einfach. File öffnen x-Bytes lesen und dann den String aus Byte X - X auslesen und somit hat man den Namen.



  • Also wenn ich die Datei mit Notepad öffne, sehe ich folgendes:

    HLDEMO  / de_dust2 cstrike ©mEj? Ëp»AÛ
         & 
    BUILD 2738 SERVER (0 CRC)
    Server # 5
    /  ëC-]FŠÞLÔVGêW6ÎòUj cstrike  Heilige Erde  - Bald neue IP! - by CS-Arena.com maps/de_dust2.bsp de_aztec
    de_dust2
    ÕïÅ
    ʵé„¢ÙÐIŸ¦6 event_t  ùC (s£Ks#+à P } } È €\\˜\\X[ @@ è è @þ ÄàÂäÂÚd ˆ @ @ òG ø&—v–æ¶Ó€   @ ú ? À7¹´³4·­˜. € ú Ð €ü ¾É¥¥¹mÉt@ h Ѐ> ä Ð .L.¬-  €Pà ô  €fparam2 4 €   ùC Lƒ “ k‹À } } È\˜\X› @€è è @þ ÃÜÎØÊæ¶`º ( 4 è@ òG ævÆV6·Ó€  @ ú ? À0·3¶²¹-™. €
    ú Ð €ü! Õ­¥¹° €> €>

    Das ist keine normale Text Datei, denn wenn ich mit:

    char str[40];
    	m_pa = dlg.GetPathName();
    	CFile datei( m_pa,CFile::typeBinary);
    	datei.Read(str,sizeof(str));
    	datei.Close();	
    	m_ppp = str;
    

    Eine Datei Text einlese, sehe ich text, aber bei der Datei sehe ich nur:

    îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî

    Ich hab kp, wie ich solch eine Datei auslesen kann 😞



  • Ahhh ich habs endlich, mir hat ein Tutorial geholfen, wie man die MP3 Tags ausliesst 😛

    CString m_pp,m_pa;
    	m_pa = dlg.GetPathName();
    
    	 FILE    *datei_ptr; 
         char    ver[20]; 
    	 datei_ptr = fopen(m_pa, "r+b"); 
    	 fseek(datei_ptr,16,NULL);
    
    	 fgets(ver,20,datei_ptr); 
    	 m_map=ver;
    	 fclose(datei_ptr);
    

    Trotzdem danke 🙂


Log in to reply