BEim einfügen immer 1 Zeile mehr



  • Hi

    Ich lese aus einer Excel Tabelle zeilen weise aus, das funktioniert soweit
    das Problem liegt darin wenn ich die Daten in ein Memofeld schreibe, dann trägt
    das Programm immer die zweite Zeile aus Excel mit ein.

    Hier mal der Code :

    bool TabEnd = true;
    unsigned int  erm = 1;
    int erg = 0, bg = 0;
    String bgs = "BG";
    
    while(TabEnd)
    {
    //Hier lese ich die Tabelle aus Excel ein
    AnsiString j = Sheet.OlePropertyGet("Cells",erm,1); 
    
    if(j >= bgs+bg) // ab hier vergleich ich ob z.b BG63 in der Tabelle steht
    {
    Memo2->Lines->Add(j); // hier trage ich den Wert ein
    //erg++;
    }
    //if(Memo2->Lines->Strings[erg].SetLength(2) == erg )
      // TabEnd = false;
    
         erm ++;    // ab hier setzte ich die Zeile 1 weiter kommt der Fehler. Das Programm in das Memofeld eine weitere Zeile mit m schreibt
    }
    

    Hier die Daten aus Excel :

    Spalte 1       Spalte 2
    
    BG70	
    m	           f/hz
    0	          10065
    3,95	        9308
    6,3718	      7838
    8,2311	      5950
    7,0607	      4721
    12,4336	     3965
    13,3218	     3814
    14,0801	     3635
    

    BG70 liest das programm mit aus und trägt es ein aber
    die zweite Zeile mit m auch.

    Die Eintargung im Memofeld sehe dann so aus z.b :

    BG70
    m
    BG71
    m
    BG72
    m

    usw.
    Das m soll er aber net mit eingetragen werden .
    Wäre für Hilfe dankbar.

    MFG



  • Glaubst Du, dass der Vergleich von zwei Strings tatsächlich so funktioniert?

    if(j >= bgs+bg) // ab hier vergleich ich ob z.b BG63 in der Tabelle steht
    

    Sieh Dir mal die Hilfe zu operator >= von AnsiString an.
    Ich vermute, Du müsstest auf AnsiCompare o.ä. ausweichen. Aber wahrscheinlich würde Dein Problem trotzdem bestehen bleiben.
    Überleg mal, was im Telefonbuch weiter hinten steht (also >=): m oder B?

    Gruß,

    Alexander


Anmelden zum Antworten