tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
716
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von untread
    untread untread ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    322
    Hallo, und zwar möchte ich jede Zeile extra in einer Variable speichern.
    Nun weiß ich jedoch nicht wie ich das anstellen soll, da char ja immer nur einen Charackter nimmt und bei diesem Code klarerweiße ne Fehlermeldung

    Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class CString' akzeptiert (oder keine geeignete Konvertierung moeglich)


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    CStdioFile file("datei.txt",CFile::modeRead); 
     
        CString temp = _T(""); 
        CString str = _T("");  
        char zeilen[100] = "";
        int i=0;
     
       
        while(file.ReadString(temp) != NULL) 
        {
            str += temp + "\r\n"; //hängt ein Zeilenende an den String
              
            
              zeilen[i] = temp;
              i++;
     
        }
        
        
        file.Close();


    mfg Harry
     

  2. #2
    Squeegee Squeegee ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    53
    Hi,
    ich bin nicht so der Fan von statischen char-Feldern...
    Wozu brauchst du die denn unbedingt?

    Mal davon abgesehen, verstehe deinen Code nicht...

    und zwar möchte ich jede Zeile extra in einer Variable speichern.
    Du hast aber nur eine Variable, nämlich dein Feld mit jeweils einer char?

    Was willst du denn genau machen?

    Grüße Squeegee

    PS.: Da fällt mir ein, könnte deine Lösung ein CArray oder eine CList sein?
    Geändert von Squeegee (28.12.05 um 16:31 Uhr)
     

  3. #3
    Squeegee Squeegee ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    53
    Haha, jetzt hab ich deinen anderen Post nochmal gesehen,
    ich glaub ich weiß jetzt was du willst...


    Code :
    1
    2
    3
    
    const char* ptemp=NULL;
    ptemp = (LPCTSTR) temp;
    zeilen[i] = atoi(ptemp);


    Trick ist die Methode atoi, die einen String in Zahlen wandelt.
    Hab den Code grad frei hingeschrieben, ich hoffe, es sind keine Fehler drin...


    Gruß Squeegee
     

  4. #4
    Avatar von untread
    untread untread ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    322
    dankeschön ,mit Zahlen funktionierts, mit "Wörtern" jedoch nicht (wäre interessant zu wissen ob das auch geht)

    Ja die Sache ist die, ich bekommen von einem EEPROM Daten die ich mit einem FTDI Chip sende bzw. lese und die sollen dann in eine Textdatei geschrieben werden.

    Dazu gibt es ein Auswertungsprogramm, welches mir dann diese Werte in einem Diagramm darstellt.

    Also das sind mal die ersten Annäherungsschritte im Endeffekt stehen dann in der Textdatei die Zahlen nicht nur untereinandern sondern beinhaltet eine Zeile mehrere Messwerte ( z.B. Datum,Zeit|Temperatur|Luftdruck|Lichtstärke) und die sollten dann auch noch per Trennzeichen abgesonderd eingelesen werden.

    Gibts da ne simple Möglichkeit dazu?

    mfG Harry
     

  5. #5
    Squeegee Squeegee ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    53
    Hi Harry,
    mit Wörtern geht das natürlich nicht (atoi wandelt den Text ja in eine Zahl), aber Wörter würde ich wie gesagt auch eher einfach in dem CString lassen...
    Du hast also ein ASCII-File, in dem pro Zeile mehrere Messwerte und Text stehen.
    Da das File ja ein spezielles Format hat, fällt mir nix besseres ein, als einen Parser zu schreiben, der dir jede Zeile richtig interpretiert.

    Beispielsweise:

    Temperatur=200, Zeit=1112,....
    Dann musst du (am besten mittels einer Lookup-Tabelle) diese Zeile auf Keywörter untersuchen, zb.: auf das Keywort "Temperatur=". Dann musst du ermitteln, an welcher Position das "=" ist und von da aus soundsoviele Zeichen nach rechts hin einlesen und auswerten.
    Wenn du das Textfile selbst beeinflussen kannst, überleg dir ne sinnvolle Struktur der Daten (über mehrere Zeilen), die das einlesen erleichtert.

    Das ist allerdings ein wenig ein Gefiesel, hab ich vor kurzem auch gemacht, hatte allerdings pro Zeile nur einen Wert, das vereinfacht die Sache.
    Schau dir die Klasse CList als Lookup-Table mal genauer an. CString bietet mehrere Methoden, die einem die Arbeit bei sowas auch erleichtern.


    Gruß Squeegee
    Geändert von Squeegee (28.12.05 um 18:23 Uhr)
     

  6. #6
    langer1801 langer1801 ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Ort
    Bad Arolsen (Hessen)
    Beiträge
    556
    Hi,
    wenn jede Zeile genau die gleichen Variablen in der gleichen Reihenfolge enthält, nur mit unterschiedlichen Werten, würde ich eine eigene Klasse dafür definieren, und dann die einzelnen Datensätze in einem CObArray speichern. Das ist die einfachste Möglichkeit. Wenn allerdings die Zeilen unterschiedliche Variable enthalten, bleibt dir nur die Methode mit dem Parser, siehe Post von SqueeGee.

    Mfg

    langer
     

  7. #7
    Avatar von untread
    untread untread ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Beiträge
    322
    danke werde mal schaun wie ich das am besten lösen kann
    Naja wenn ich CString zeilen[i] schreibe ..also einen CString als Array definieren, geht das nicht, aber egal

    mfg Harry
    Geändert von untread (28.12.05 um 19:26 Uhr)
     

  8. #8
    Squeegee Squeegee ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Beiträge
    53
    Hi,
    und dann mach ich für heute Feierabend *g*
    nicht CString zeilen[i], das geht so nicht. Manches must du in der MFC ein wenig anders angehen also sonst, also hier der vollständige Code:

    CArray<CString, CString> zeilen;

    Glaub mir! Viel toller!

    Grüße und einen schönen Feierabend
    Squeegee
     

Ähnliche Themen

  1. Array von je einem String und einem Double
    Von Jellysheep im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 5
    Letzter Beitrag: 06.01.10, 11:37
  2. Array als String speichern
    Von Raven280438 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 13.11.07, 11:07
  3. Problem mit String und einem Array
    Von freihsve im Forum PHP
    Antworten: 9
    Letzter Beitrag: 27.09.06, 09:45
  4. LUA string aufteilen und in array speichern
    Von fightor im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 22.05.06, 19:29
  5. Array und String in einem?
    Von Azamur im Forum PHP
    Antworten: 0
    Letzter Beitrag: 24.03.05, 18:08