Szybki binarny odczyt pliku

dział ogólny

Re: Szybki binarny odczyt pliku

Nowy postprzez Cyfrowy Baron » środa, 2 lutego 2011, 14:11

no nie rozumiem, powtarzam ze z listboxa do TChart tez nastepuje konwersja ze string na float albo int a mimo to nie wplywa to na szybkosc rysowania,


Konwersja ze String na int czy float nie zajmuje wiele czasu. Opóźnienie powstaje gdy wczytujesz dane binarne z pliku do ListBox lub do TChart. Dokonywana jest niejawna konwersja. Nie używaj klasy fstream, posłuż się inną metodą, może TFileStream.
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 XPFirefox

Re: Szybki binarny odczyt pliku

Nowy postprzez MisticFrezer » środa, 2 lutego 2011, 20:04

Cyfrowy Baron napisał(a):Nie używaj klasy fstream.

Czemu?

Może pokaż nam kod czytający Twojego wave'a :)
Generalnie czytanie bajt po bajcie jest wolne (pliki wav zajmują nieraz dużo MB).
Może użyj bufora, np stringstream. Używa się go podobnie jak fstream, ale pracujesz w pamięci operacyjnej, a nie 'na dysku'.
Avatar użytkownika
MisticFrezer
Bladawiec
Bladawiec
 
Posty: 23
Dołączył(a): wtorek, 23 lutego 2010, 23:57
Lokalizacja: Wrocław
Podziękował : 1
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP3, Windows 7 Pro
Kompilator: BCB6, RAD Studio 2010, VS 2010
Gadu Gadu: 0
    Windows 7Opera

Re: Szybki binarny odczyt pliku

Nowy postprzez Cyfrowy Baron » środa, 2 lutego 2011, 20:35

Może spróbuj wczytać ten plik do pamięci z wykorzystaniem klasy TMemoryStream, a potem pobieraj dane z pamięci nie z dysku - będzie szybciej.
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 XPFirefox

Re: Szybki binarny odczyt pliku

Nowy postprzez polymorphism » środa, 2 lutego 2011, 21:55

Może użyj bufora, np stringstream.

Heh, stringstream, jak nazwa wskazuje, służy do wykonywania sformatowanych operacji strumieniowych na tekście. Do pliku audio pasuje jak pięść do oka ;) No i nie jest buforem.
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 XPFirefox

Re: Szybki binarny odczyt pliku

Nowy postprzez Krejzi » piątek, 4 lutego 2011, 15:50

Atam poddaje sie :/ probowalem tych klas i tez tylko czytalem w zasadzie i trwa to tyle samo nawet do pamięci, albo ja cos zle robie nie wiem ale juz mi sie nie chce zostawiam cyztanie narazie takie musze popracowac nad syntezą addytywną dzwieku teraz :/.:
Tutaj link do aktualnego programu z czytaniem ifstream i przykladowym plikiem wav moze ktos bedzie mial ochote nad tym pomyslec i przekazac mi wskazówki.

Narazie jest zrobione czytanie do list boxów i button do rysowania wykresu z list boxów

http://wuempe.ovh.org/Wav_czytanie_wykres.zip
Avatar użytkownika
Krejzi
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): piątek, 28 stycznia 2011, 23:59
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: windows 7
Kompilator: borland c++
Gadu Gadu: 0
    Windows 7Opera

Poprzednia 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