Nacitanie dat zo suboru c++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Nacitanie dat zo suboru c++ – C / C++ – Fórum – Programujte.comNacitanie dat zo suboru c++ – C / C++ – Fórum – Programujte.com

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

Poohlížíte se po nové práci? Projektant Linux do oddělení Datových center
nord0
Návštěvník
6. 5. 2016   #1
-
0
-

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

Nahlásit jako SPAM
IP: 212.89.239.–
Radek Chalupa
~ Redaktor
+1
Super člen
6. 5. 2016   #2
-
0
-

#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

Nahlásit jako SPAM
IP: 89.177.51.–
BDS+3
Věrný člen
6. 5. 2016   #3
-
0
-

#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.

Nahlásit jako SPAM
IP: 185.69.69.–
Windows 10 x64 (i7 2,8GHz, RAM 16GB, GTX 560, 1920x1080, 27")
Visual Studio C#, RAD C/C++, Affinity P/D, Opera..
Rainbow Six 3, Tomb Raider, NFS, AOE, Dune 2..
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 43 hostů

Podobná vlákna

Načítanie zo súboru — založil Grungy

Načítanie matice zo súboru — založil DušanDinoZzo

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý