Citanie textovych suborov – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Citanie textovych suborov – C / C++ – Fórum – Programujte.comCitanie textovych suborov – C / C++ – Fórum – Programujte.com

 

dudo1904
~ Anonymní uživatel
27 příspěvků
7. 6. 2007   #1
-
0
-

Nevie mi tu niekto poradit ci sa v c++ da citat z daneho riadku v .txt subore? Nemyslim tak ze by som musel nepotrebne riadky tiez citat ale priamo skocit na ten kt potrebujem, pretoze sa toto vyhladavanie bude casto opakovat...

Nahlásit jako SPAM
IP: ...–
7. 6. 2007   #2
-
0
-

NE! Nový řádek je jen znak jako třeba "A"..

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
7. 6. 2007   #3
-
0
-

V zásadě jde o to, že nevíš kolik znaků má který řádek. Pokud by řádky měly danou přesně velikost, pak by v tom nebyl žádný problém a ani tvrzení od Zelenáče, mimochodem poněkud nepřesné, nezabránilo.
Dále by to šlo optimalizovat tak, že by jsi si zprvu ten soubor prošel řádek po řádku a ukládal si např. do vektoru, indexy nových řádků. Při dalším hledání by stačilo, pouze nahlídnout do pole, zjistit offset a přemístit ukazatel souboru na ono místo.

Nahlásit jako SPAM
IP: ...–
7. 6. 2007   #4
-
0
-

To Jura:

Nemyslim tak ze by som musel nepotrebne riadky tiez citat ale priamo skocit na ten kt potrebujem


Proc myslis, ze je me tvrzeni nepresne? AFAIK v ASCII je novy radek 13, 10 (pripadne oboji) - je to znak stejne jako tabulator, mezernik nebo kterekoli pismeno..
To dudo1904: Mozna by ti lepe poslouzila databaze ?!

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
7. 6. 2007   #5
-
0
-

Nějak mi není jasné, co má znak nového řádku společného s tím, že se nedá přeskočit na příslušný řádek? To s tím vůbec nesouvisí, jediný důvod proč si to nemůžes "dovolit" je ten, který jsem již zmínil - pokud nemáš předem určený počet znaků v řádku, tak si nemůžeš být jistý, kde začíná další řádek.

Nahlásit jako SPAM
IP: ...–
7. 6. 2007   #6
-
0
-

Textový soubor teoreticky žádné řádky nemá, takže není na co skákat! Samozřejmě můžeš v souboru odpočítat X znaku \n a vše, co leží mezi X+1 a X+2 načíst - tazatelovi se ovšem tato metoda nelíbila a proto se ptal, zda to nejde nějak "přímo"..
Oproti tomu, pokud máš jasně definovanou velikost "řádku", pak jsou celé řádky vlastně naprosto zbytečné a bohatě stačí načítat "bloky" o dané velikosti :-P

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
7. 6. 2007   #7
-
0
-

Bez komentáře...

Nahlásit jako SPAM
IP: ...–
dudo1904
~ Anonymní uživatel
27 příspěvků
7. 6. 2007   #8
-
0
-

Cez DB to nepojde lebo to ma citat koordinaty vertexov v .obj suboroch(maju celkom jednoduchy zapis) takze asi jedina cesta je spraviit pole a ukladat po jednom a potom vyberat vertexy odtial a spajat? P.S.:OpenGL:-? Len by ma zaujimalo ake bude to pole velke.... desattisice poloziek

Nahlásit jako SPAM
IP: ...–
sn3d
~ Anonymní uživatel
564 příspěvků
8. 6. 2007   #9
-
0
-

dudo1904: Nacitat si data kompletne do nejakeho buffera je asi najlebsi sposob. Totizto pamat RAM je v tomto nepochybne rychlejsia a nemoze sa to porovnavat s prstupom k disku, cize skakanie v subore nieje vhodny napad. Skusal som to raz a bolo to pretty slowly. Co sa tyka desatisice poloziek, taktiez nemaj strach. Zober si ze mas cca 30 000 vertexov. kazdy vertex sa sklada z 3 suradnic tj 30 000 * 3 = 90 000. Zoberme ze ide o GLFloat ktory je 32 bitovy cize 90 000 * 32 = 2 880 000 bitov. Bajt ma 8 bitov cize 2 880 000/8 = 360 000 cize 360 000 / 1024 = 351.5625 Kb co je pri dnesnej velkosti RAMiek v pohode.

Nahlásit jako SPAM
IP: ...–
dudo1904
~ Anonymní uživatel
27 příspěvků
8. 6. 2007   #10
-
0
-

Spravim to teda cez buffer. Diky za rady...

Nahlásit jako SPAM
IP: ...–
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, 40 hostů

Moderátoři diskuze

 

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