CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Playlista na listview zapis/odczyt z pliku.

Playlista na listview zapis/odczyt z pliku.

dział ogólny

Playlista na listview zapis/odczyt z pliku.

Nowy postprzez Peter_M » piątek, 13 grudnia 2019, 12:37

Witam. Nawiązując do tematu o kontrolce List view: http://programowanie.cal.pl/cyfbar/listview.html chciałem zbudować playlistę do odtwarzacza multimedialnego(kilka tematów o nim poruszałem) w oparciu o tę kontrolkę. Wiem, że można by zbudować na listboxie, ale listbox nie posiada kolumn tylko wszystko dodaje jak leci. Chciałbym również na listview zrobić tzw drag and drop żeby z np z pulpitu przeciągać pliki na playlistę.
W jaki sposób mogę zapisać do pliku/odczytać z pliku elementy playlisty w oparciu o kontrolkę Listview? Próbowałem coś samemu wymodzić, ale nic mi nie przyszło do głowy. Jest na to jakiś w miarę prosty sposób?
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 41
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3.2
SKYPE: pikus_666
Gadu Gadu: 68554272
    LinuxChrome

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez polymorphism » piątek, 13 grudnia 2019, 20:30

Pętli próbowałeś użyć? :)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez Peter_M » piątek, 13 grudnia 2019, 21:07

Próbowałem, ale Poddałem się.
:cry:
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 41
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3.2
SKYPE: pikus_666
Gadu Gadu: 68554272
    WindowsChrome

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez polymorphism » piątek, 13 grudnia 2019, 21:52

To jak, piszesz player, a wykładasz się na tak banalnej sprawie?

Lecisz w pętli po kolei wszystkie elementy listy i zapisujesz je do pliku. W czym dokładnie problem?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez Peter_M » piątek, 13 grudnia 2019, 22:18

polymorphism napisał(a):To jak, piszesz player, a wykładasz się na tak banalnej sprawie?
Dla doświadczonych Programistów być może jest to banalne, ale dla początkujących już być może nie.
polymorphism napisał(a):Lecisz w pętli po kolei wszystkie elementy listy i zapisujesz je do pliku. W czym dokładnie problem?

A no w tym problem, że nie chce zapisać więcej niż jeden element.
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 41
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3.2
SKYPE: pikus_666
Gadu Gadu: 68554272
    WindowsChrome

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez polymorphism » piątek, 13 grudnia 2019, 22:48

Pokaż kod.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez Peter_M » piątek, 13 grudnia 2019, 23:25

Kodu nie mam, Ponieważ pustego pliku zamieszczał nie będę. Chciałbym żeby plik wynikowy zawierał ścieżki dostępu do plików. Czy w ten sposób można stworzyć, PlayListę, aby zapisywała ścieżki do plików?
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 41
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3.2
SKYPE: pikus_666
Gadu Gadu: 68554272
    WindowsChrome

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez polymorphism » sobota, 14 grudnia 2019, 01:03

Chodziło mi o kod, który jest wynikiem twoich prób. Twierdzisz, że nie udaje Ci się zapisać więcej niż jeden element, dlatego chciałbym zobaczyć, co tam napisałeś, że nie zapisuje całej listy.

Czy w ten sposób można stworzyć

Można.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez Peter_M » sobota, 14 grudnia 2019, 14:18

Tak wiem. Próbowałem łączyć kod z porady o zapisywaniu i ładowaniu subitems pętlą for ale kompilator zwracał błędy kompilacji. Próbowałem coś poszukać na własną rękę. Ale znajdowałem praktycznie przykłady użycia na kod Delphi dla c++ buildera same ogólniki. Dlatego też postanowiłem założyć temat, bo może wspólnie coś wymodzimy. Niby prosta rzecz, a jednak powoduje u mnie załamanie się. :(
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 41
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3.2
SKYPE: pikus_666
Gadu Gadu: 68554272
    LinuxChrome

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez polymorphism » sobota, 14 grudnia 2019, 15:31

Dobra, inaczej.
Chcesz zapisać zawartość listview, tak? Co jest nie tak w zapisywaniu (np. przy użyciu std::ofstream) element po elemencie do pliku? Gdzie jest konkretnie problem (pokaż przykładowy kod)?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez Peter_M » środa, 18 grudnia 2019, 14:09

polymorphism napisał(a):Dobra, inaczej.
Chcesz zapisać zawartość listview, tak?
Nie, Chcę zapisać, ścieżki do plików, które są umieszczone na Komponencie ListView, przykładowo na komponencie ListView jest Test.mp3 dodany do kolumny drugiej, Test1.mp3 zapisany jest w kolumnie 3 itd. Chcąc zapisać taką playlistę, w pliku wynikowym ma być coś takiego:
Kod: Zaznacz cały
Test\Test.mp3
Test1\Test1.mp3
Test2\Test2.mp3 . itd, itd.

polymorphism napisał(a): Co jest nie tak w zapisywaniu (np. przy użyciu std::ofstream) element po elemencie do pliku? Gdzie jest konkretnie problem (pokaż przykładowy kod)?

Funkcja OfStream zapisuje sam element, a nie ścieżkę dostępu. Jak wspomniałem chcę zapisać ścieżkę dostępu do plików.
swoją drogą, przepraszam za opóźnienie choroba.
Avatar użytkownika
Peter_M
Bladawiec
Bladawiec
 
Posty: 41
Dołączył(a): poniedziałek, 3 grudnia 2018, 23:36
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: RAD Studio 10.3.2
SKYPE: pikus_666
Gadu Gadu: 68554272
    WindowsChrome

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez polymorphism » środa, 18 grudnia 2019, 15:38

przykładowo na komponencie ListView jest Test.mp3 dodany do kolumny drugiej, Test1.mp3 zapisany jest w kolumnie 3 itd.

Nie pomyliłeś kolumn z wierszami?

Jak wspomniałem chcę zapisać ścieżkę dostępu do plików.

Jeśli w listview nie ma pełnych ścieżek, to nie zapiszesz ich do pliku. Chyba że dodasz jeszcze jedną kolumnę, np. Path, w której będą pełne ścieżki do plików mp3. No i wtedy z górki.

Inna opcja, bardziej pr0, to listview działający w trybie virtual, wtedy całą playlistę trzymasz w wektorze (wraz ze ścieżkami). Poczytaj o właściwości TListView::OwnerData.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez lukagrom » środa, 18 grudnia 2019, 19:53

Jeśli kolumny i wiersze to może lepiej StringGrid
Nie wiem czy dobrze zrozumiałem, ale od biedy można zastosować taki zapis:
KOD cpp:     UKRYJ  
 AnsiString a,b,c,result_Mus;
 FILE *music_F1;
 StringGrid1->Cells[0][0]="Polish hits";
 StringGrid1->Cells[1][0]="Shazza";
 StringGrid1->Cells[2][0]="Bierz_co_chcesz.mp3";
 AnsiString name_File="My_music.txt";
 AnsiString sep="/";
 a=StringGrid1->Cells[0][0];
 b=StringGrid1->Cells[1][0];
 c=StringGrid1->Cells[2][0];
 result_Mus=a+sep+b+sep+c;
 music_F1=fopen(name_File.c_str(),"wt");
 fprintf(music_F1,"%s",result_Mus.c_str());
 fclose(music_F1);

 
Avatar użytkownika
lukagrom
Intelektryk
Intelektryk
 
Posty: 129
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 9
Otrzymał podziękowań: 5
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    Windows VistaChrome

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez polymorphism » środa, 18 grudnia 2019, 20:18

Jeśli kolumny i wiersze to może lepiej StringGrid

Przecież w listview też są kolumny.

Co te funkcje z C tam robią? Masz std::ofstream i std::ifstream.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Playlista na listview zapis/odczyt z pliku.

Nowy postprzez lukagrom » środa, 18 grudnia 2019, 21:31

Naturalnie mój błąd ze złych przyzwyczajeń, oczywiście powinno być:
KOD cpp:     UKRYJ  
ofstream music_F1;
 music_F1.open(name_File.c_str());
 music_F1<<result_Mus.c_str();
 music_F1.close();
 


A na stackoverflow znalazłem funkcję do ścieżki dostępu:
Quick and nice solution is to use this function to remove chars from string:

KOD cpp:     UKRYJ  
void removeCharsFromString( string &str, char* charsToRemove ) {
   for ( unsigned int i = 0; i < strlen(charsToRemove); ++i ) {
      str.erase( remove(str.begin(), str.end(), charsToRemove[i]), str.end() );
   }
}

string myAbsolutepath; //fill with your absolute path
removeCharsFromString( myAbsolutepath, "\"" );
 
Avatar użytkownika
lukagrom
Intelektryk
Intelektryk
 
Posty: 129
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 9
Otrzymał podziękowań: 5
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    Windows VistaChrome

Następna strona

  • 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 5 gości

cron