Announcement

Collapse
No announcement yet.

Problem mit eof() bei getline()

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit eof() bei getline()

    Hallo,

    habe einen Code der bei C++ 4.0 funktioniert hat, nach der Umstellung auf
    BDS 2006 geht es so nicht mehr.

    filelist->AddStrings(FrmMain->DatFiles->Items);
    while (i < filcount)
    {
    ifname = filelist->Strings[i];
    ifile.open(ifname.c_str());
    if (ifile != NULL)
    {
    while (getline(ifile,dat_line)
    {

    .....

    }
    }
    ifile.close();
    i++;
    }

    Wenn im Verzeichniss mehrere Files sind. Wird die erste Datei sauber gelesen,
    bei den nächsten heisst es die Dateigrösse ist NULL und somit werden die
    nicht gelesen.
    Woran kann es liegen ?

    Danke und MfG bo1

  • #2
    Es wäre eine alternative hier TStringList zu nutzen und dort die Dateien einzulesen. Das ist wesentlich einfacher.

    Ansonsten mal bei
    i++

    einen Breakpoint setzen und debuggen

    welche Datei versucht wird zu öffenen
    Christian

    Comment


    • #3
      Habe das schon gemacht. Es wird jedesmal die richtige Datei geöffnet.
      Aber nur die erste kann gelesen werden. Der Code wurde automatisch
      von BSD 2006 konvertiert, habe nichts geändert.

      Comment


      • #4
        TStringList *datei=new TStringList();


        filelist->AddStrings(FrmMain->DatFiles->Items);
        while (i < filcount)
        {
        datei->Clear();
        datei->LoadFromFile(filelist->Strings[i]);
        .....

        i++;
        }

        delete datei;


        Mehr kann man nicht sagen, dazu fehlt zuviel an deinen Codeauszug
        Christian

        Comment


        • #5
          Werde morgen teste.
          Danke.

          Comment


          • #6
            Es funktioniert.
            Danke Christian.

            Comment

            Working...
            X