zdravim. Mam problem pri nacitani z txt. Mam velmi vela dat (mena a cisla) . Viete mi poradit nejaky rychly sposom nacitania ? Lebo mne to trva minutu a par sekund ked spustam program a to je dost :) v programe chcem s datami pracovat tak tam potrebujem vsetky. Pripadne dat to do ineho suboru ? Nie txt? Dakujem za pomoc
Fórum › C / C++
Nacitanie dat zo suboru c++
#1 nord
Záleží v jakém formátu to je uložené. Pokud čísla textově, tak to máš blbý, musíš to parsovat a to bude vždy mnohem pomalejší než když je to uložené binárně - tj. prostě obsah paměti tak jak je zapsaný do souboru a při načítání pak obsah najednou načíst zase do (předem alokovan) paměti.
A pokud jde o vlastní načítání, tak nejrychlejší je samozřejmě načíst celý soubor jedinou "čtecí" operací, ve Windows konkrétně funkcí ReadFile, s tím že po otevření (CreateFile) zjistíš velikost (GetFileSize), na tuto velikost naalokuješ buffer a zavoláš ReadFile...
Radek Chalupa
- individuální konzultace, školení programování (C/C++, WinAPI, COM, ActiveX, ATL, C#, NET Framework, MFC)
- vývoj software na zakázku
http://www.radekchalupa.cz
#1 nord
Asi nejjednodušší i hodně rychlé řešení, pokud jde například o seznam osob, je mít osobu ve struktuře o pevné velikosti. Například:
#pragma pack(1)
struct OSOBA
{
char meno[64]; //takže tady může mít jméno max 63 znaků..
char priezvisko[64];
unsigned int stav_konta;
unsigned short rok_narodenia;
unsigned short id;
}
#pragma pack()
osoby pak načítat postupně ze souboru o velikosti sizeof(OSOBA).
Nevýhodou je omezení délky textů v kombinaci se zbytečně uloženými bajty (pokud je text kratší než velikost pole) + zápis ukončovací nuly (takže je soubor často o něco větší). Další (nejspíš) nevýhodou je obtížné verzování souboru.
Výhodou je vysoká rychlost čtení a zápisu do souboru + jednoduchý pohyb v souboru, takže lze jednoduše po editaci zapsat pouze vybrané osoby do souboru (nemusí se přepisovat celý soubor).
Samozřejmě nechci vyvracet nic s toho co napsal Radek Chalupa.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Načítanie dát zo súboru do poľa - Problém — založil mirec123
Načítanie zo súboru — založil Grungy
Načítanie súboru do matice — založil Marcel
Načítanie matice zo súboru — založil DušanDinoZzo
C - Načítanie matice zo súboru — založil Calissa
Moderátoři diskuze