TStringGrid zur nächsten Zeile springen



  • Hallo

    Die Fehlermeldung ist doch eindeutig

    StringGrid1->Rows[1]->CommaText = tmpList->Text;
    

    bis bald
    akari



  • ok danke geht so.

    aber den lösungsansatz kann ich doch nicht verwenden. Die Datensätze sind leider durch ; getrennt und nicht durch ,



  • ich empfehle das du oben noch mal nachschauen solltest... oder die hilfe vom bcb nutzt und mal "DelimitedText" eingibst... da siehst du das was du brauchst... is das selbe wie commatext nur das du die zeichen selber definieren kannst...

    cya
    da vo



  • dann den Delimiter auf ; setzen und DelimitedText verwenden



  • Du kannst ja mit StringReplace vorher die Semikolons durch Kommas ersetzen. Ab dem BCB6 kann man das Trennzeichen auch selbst bestimmen (Separator).



  • ok. danke. hab das ganze jetzt auf kommas umgestellt. leuft jetzt

    aber ich hab da ja mehr als einen datensatz drinnen. jetzt muss ich ja irgendwie zählen wieviele das sind in der datei oder?

    Danke für eure geduld 👍



  • Gibt so Grundprinzipen in der EDV. Beim lesen aus Dateien:

    Vorlesen
    Prüfung (EOF)
    verarbeiten
    weiterlesen
    zur Prüfung
    nachverarbeiten

    Im "Verarbeiten" machst du dein schieben ins Grid und eine Zählung



  • @hoellenhund

    du solltest wirklich mal anfangen die BCB-Hilfe und die FAQ zu nutzen
    z.B. diese Thema aus der FAQ, einfach an deine Bedürfnisse anpassen
    oder die BCB-Hilfe zu TStringList (z.B. die Eigenschaft Count) und die diversen Beispiele

    hier noch ein nützlicher Link: Hilfe benutzen



  • jo. hab die hilfe mal benutzt. und es leuft sogar jetzt fast.

    Der ließt alle Datensätze (3 Stück) ein und schreibt die ins TStringGrid

    Nur nachdem der Die eingelesen hat bekomme ich noch folgende Meldung:

    Der Index der Liste überschreitet das Maximum(3)

    Kann damit irgendwie nichts anfangen. Ich denke da wird irgendwo nen fehler in meiner schleife sein

    int zeilen;
    
    TStringList* tmpList = new TStringList;
    tmpList->LoadFromFile("C:\\hallo.csv");
    zeilen = tmpList->Count;
    
    for (int y = 0; y <= zeilen; y++)
    {
    int j = StringGrid1->RowCount;
    StringGrid1->Rows[j-1]->CommaText = tmpList->Strings[y];
    StringGrid1->RowCount += 1;
    


  • hab den fehler. lag am = Zeichen in der Schleife



  • immer noch falch:

    y < zeilen
    


  • hallo,

    hab jetzt ein problem mit dem löschen.

    Also wenn ich das gitter mit meiner Liste fülle und dann lösche dann löscht der mir alle Daten

    Wenn ich allerding mit meinen Hinzufügen Button was hinzufüge dann löscht der mir

    bei 3 Datensätzen die die letzten beiden und vom ersten alles bis auf die daten im letzten

    bei 2 datensätzen den 2 datensatz und vom ersten die letzten beiden spalten nicht

    bei 1 datensatz die letzten 3 spalten nicht

    code vom löschen

    for (int i = 0; i < StringGrid1->RowCount; i++)
      for (int l = 1; l < StringGrid1->ColCount; l++)
        StringGrid1->Cells[i][l] = "";
    StringGrid1->RowCount = 2;
    


  • Bin dafür, einen Projekt-Thread zu eröffnen. Des Weiteren würde es zur Verständlichkeit beitragen, Groß/Kleinschreibung einheitlich einzusetzen sowie Interpunktionen zu nutzen.

    Unabhängig davon, debugge dein Programm und beobachte die Ausgaben und Variablen

    😞


Anmelden zum Antworten