Typove subory – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Typove subory – Pascal – Fórum – Programujte.comTypove subory – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
lukas
~ Anonymní uživatel
275 příspěvků
6. 3. 2009   #1
-
0
-

Zdravim uzivatelov fora, stretol som sa pri rieseni jednej ulohy do skoly s problemom:

Mam typovy subor, je v nom okolo 10 zaznamov, ked chcem napriklad jeden zaznam vymazat zo suboru, co by som mal pouzit? prehladal som cely help TP ale ziadnu funkciu som nenasiel, tak som to vyriesil takto:

premenujem subor, vytvorim novy subor s povodnym nazvom a z premenovanehi kopirujem vsetky zaznamy okrem toho ktory som chcel odstranit zo suboru. ono to funguje ale keby bolo v subore viac zaznamov tak by to asi dlho trvalo.

Nahlásit jako SPAM
IP: 78.99.38.–
Reklama
Reklama
fkilla0
Newbie
6. 3. 2009   #2
-
0
-

To lukas : Funkciu na mazanie dat zo suboru som este nevidel ;) Na vyriesenie tvojej ulohy by som pouzil podobny postup ako si navrhoval, ale trochu zjednoduseny: otvorit subor na citanie, nacitat z neho vsetky data do pamate, odstranit alebo vynechat nepotrebny zaznam. zatvorit subor. potom ten isty subor otvorit na rewrite a vsetky potrebne data zapisat spat.

Nahlásit jako SPAM
IP: 87.244.196.–
Mircosoft+1
Věrný člen
7. 3. 2009   #3
-
0
-

Přesně tak - jinak než překopírováním s vynecháním mazané položky to nejde.

Pokud ale máš opravdu velký soubor, který nechceš nebo nemůžeš pořád celý přepisovat, můžeš v něm tu jednu položku přepsat a dát jí nějakou hodnotu, kterou budeš považovat za "smazáno". Udělá se to tak, že před otevřením souboru nastavíš předdefinovanou globální proměnnou Filemode na hodnotu 2 (tj. čtení i zápis, je to v helpu; myslím, že ta dvojka je dokonce defaultní nastavení). Pak soubor otevřeš Resetem, příkazem Seek najedeš na tu xtou položku (číslují se od nuly) a příkazem Write ji přepíšeš.
Trochu si tím zkomplikuješ čtení souboru, protože budeš muset rozlišovat platné a "prázdné" položky podle hodnoty, ale u několikamegabytových databází to vychází jako výhodnější varianta.

Nahlásit jako SPAM
IP: 85.132.158.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
7. 3. 2009   #4
-
0
-

dakujem za rady, necham to tak ako to je, je to len mala evidencia

Nahlásit jako SPAM
IP: 78.99.38.–
Krychlik
~ Anonymní uživatel
195 příspěvků
7. 3. 2009   #5
-
0
-

Ahoj, existuje Truncate-Smazani vsech polozek od aktualni az do konce souboru. Syntaxe: Truncate(soubor); Proste to odrizne kus souboru. Pokud neni setrizeny staci prohodit posledni a tu kterou chces smazat, presunout se na posledni (seek) a truncate. Pokud je setrizeny tak musis vsechny od toho, co chces smazat, posunout o 1 dole, cimz prepises i ten smazany, ale na konci bude 1 misto prazdne- to urezes.

Nahlásit jako SPAM
IP: 212.111.4.–
Laaca0
Stálý člen
7. 3. 2009   #6
-
0
-

Tohle je offtopic, ale docela zajímavé:
Víte, jak v mžiku vytvořit soubor o libovolné velikosti, třeba i v řádu stovek megabajtů?

Procedure VytvorSoubor(s:string;velikost:longint);

var f:file;
a:byte;
begin
Assign(f,s);
Rewrite(f,1);
a:=0;
if velikost>1 then Seek(f,velikost-1);
if velikost>0 then BlockWrite(f,a,1);
Close(f);
end;

Nahlásit jako SPAM
IP: 81.0.253.–
DOS-u-akbar
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, 11 hostů

Podobná vlákna

Typove subory v LAZARUS — založil matesko

Súbory — založil Samuel Lehotský

Hlavickove subory — založil Tom@sQo

*.dat subory — založil delphak

Moderátoři diskuze

 

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