CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - ListBox i kilka plików

ListBox i kilka plików

dział ogólny

ListBox i kilka plików

Nowy postprzez Manianass » niedziela, 4 września 2016, 19:11

witam, che dodać z kilka plików do jednego ListBox ale jak robie jak w poniższym codzie to widać tylko dane z ostatniego pliku bo zostaje nadpisane jedno na drugim.

Kod: Zaznacz cały
ListBox1->Items->LoadFromFile("plik11.txt");
ListBox2->Items->LoadFromFile("plik12.txt");
ListBox1->Items->LoadFromFile("plik21.txt");
ListBox2->Items->LoadFromFile("plik22.txt");
ListBox1->Items->LoadFromFile("plik31.txt");
ListBox2->Items->LoadFromFile("plik32.txt");
ListBox1->Items->LoadFromFile("plik41.txt");
ListBox2->Items->LoadFromFile("plik42.txt");
ListBox1->Items->LoadFromFile("plik51.txt");
ListBox2->Items->LoadFromFile("plik52.txt");
ListBox1->Items->LoadFromFile("plik61.txt");
ListBox2->Items->LoadFromFile("plik62.txt");
ListBox1->Items->LoadFromFile("plik71.txt");
ListBox2->Items->LoadFromFile("plik72.txt");
ListBox1->Items->LoadFromFile("plik81.txt");
ListBox2->Items->LoadFromFile("plik82.txt");
ListBox1->Items->LoadFromFile("plik91.txt");
ListBox2->Items->LoadFromFile("plik92.txt");



Avatar użytkownika
Manianass
Bladawiec
Bladawiec
 
Posty: 27
Dołączył(a): środa, 11 listopada 2015, 00:45
Lokalizacja: Lubin
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: win 7
Kompilator: Builder C++
Gadu Gadu: 0
    Windows 7Chrome

Re: ListBox i kilka plików

Nowy postprzez polymorphism » poniedziałek, 5 września 2016, 10:57

Możesz użyć strumieni, by połączyć zawartość wszystkich plików w jedną całość:
KOD cpp:     UKRYJ  
const char* fnames[] =
{
        "plik11.txt",
        "plik21.txt",
        "plik31.txt",
        "plik41.txt",
        "plik51.txt",
        "plik61.txt",
        "plik71.txt",
        "plik81.txt",
        "plik91.txt"
};

std::ostringstream oss;
       
for(const char* fn : fnames)
{
        std::ifstream ifs(fn);
        oss << ifs.rdbuf() << '\n';
}
       
... = oss.str().c_str(); // <--- zawartość  oss ładujesz do ListBoxa
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: ListBox i kilka plików

Nowy postprzez Cyfrowy Baron » poniedziałek, 5 września 2016, 17:02

KOD cpp:     UKRYJ  
TStringList *FileList = new TStringList();
String dir = ExtractFilePath( Application->ExeName ); /* ścieżka do katalogu programu, należy określić ścieżkę bezwzględną, bo w pewnych sytuacjach program może zgubić względną ścieżkę dostępu */

for( int i = 1; i <= 9; i++ )
{
  FileList->LoadFromFile( dir + "plik" + (String)i + 1 + ".txt" );
  ListBox1->Items->AddStrings( FileList );

  FileList->LoadFromFile( dir + "plik" + (String)i + 2 + ".txt" );
  ListBox1->Items->AddStrings( FileList );
}

delete FileList;

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Manianass
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox

Re: ListBox i kilka plików

Nowy postprzez Manianass » poniedziałek, 5 września 2016, 19:16

Pierwsze rozwiązanie zawiodło znaczy chyba brakuje biblioteki ale za to drugie działa wyśmienicie :)

Dziękuję za pomoc i poświęcony czas.
Avatar użytkownika
Manianass
Bladawiec
Bladawiec
 
Posty: 27
Dołączył(a): środa, 11 listopada 2015, 00:45
Lokalizacja: Lubin
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: win 7
Kompilator: Builder C++
Gadu Gadu: 0
    Windows 7Chrome

Re: ListBox i kilka plików

Nowy postprzez Cyfrowy Baron » wtorek, 6 września 2016, 16:22

polymorphism, jest bardzo oszczędny w kodzie. By jego przykład zadziałał musisz dołączyć bibliotekę sstream:

KOD cpp:     UKRYJ  
#include <sstream>
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 10 gości