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

File of pointer – Pascal – Fórum – Programujte.comFile of pointer – Pascal – Fórum – Programujte.com

 

10. 4. 2008   #1
-
0
-

Potřebuju poradit, dělám ročníkovou práci na libovolné téma (podmínka jsou soubory+v nich databáze čehokoliv) a já se rozhodl vytvořit univerzální databázový program, kde si může uživatel za běhu programu sám nadefinovat, jaké bude mít položka v sobě datové typy (tzn. pokud by někdo dělal telefonní seznam, tak longint a string apod.), tudíž musím všechny typy té položky udělat dynamicky (nevím, jestli nebude chtít těch stringů třeba pět, pak by v samotné položce byl jenom ukazatel na record, v recordu by byl jeden typ string a pak ukazatel na další string). Nevím ale však, jestli a jakým způsobem mohu zapisovat tyto položky do souboru, popř. jakého typu ten typový soubor udělat. konkrétněji mám takovéto typy:



type

po_integer=^r_integer;
r_integer=record
i_value:integer;
i_name:string;
i_index:longint;
i_next:po_integer;
end;

po_string=^r_string;
r_string=record
s_value:string;
s_name:string;
s_index:longint;
s_next:po_string;
end;

po_boolean=^r_boolean;
r_boolean=record
bo_value:boolean;
bo_name:string;
bo_index:longint;
bo_next:po_boolean;
end;

po_byte=^r_byte;
r_byte=record
by_value:byte;
by_name:string;
by_index:longint;
by_next:po_byte;
end;
{----------------------------------------------------------------}

hlavni_polozka=record
hp_integer:po_integer;
hp_string:po_string;
hp_boolean:po_boolean;
hp_byte:po_byte;
end;


mám potom vytvořit file of hlavni_polozka, nebo jak to mám řešit?

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
10. 4. 2008   #2
-
0
-

Hm, přemýšlel jsem a IMHO bych musel mít podmínku v type, což bohužel nejde. Napadlo mě to ale vyřešit tak, že udělám další record, který bude obsahovat akorát příslušnost, jméno a hodnotu(podle příslušnosti se pozná, ke kterému hlavnímu recordu patří) a pak bych zvlášť udělal soubor pro jednotlivé recordy, když budu poté načítat, vždycky prohledám všechny a podívám se, kolik z těch recordů má příslušnost právě k tomu, co hledám.

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
Mircosoft+1
Věrný člen
10. 4. 2008   #3
-
0
-

Hlavní položku bych řešil nějakou beztypovou strukturou, např. polem bytů (počítej s tím, že musí mít variabilní délku a budeš ho číst a zapisovat Blockreadem a Blockwritem). Nadefinuj si kódy, jakými budeš identifikovat jednotlivé datové typy (třeba 1 = byte, 2 = integer, 3 = longint, 4 = string atd.). Typy položek (tj. posloupnost těchhle kódů), které zadá uživatel, si ulož do nějakého pole. Podle něj pak budeš určovat, jak velké položky máš číst a kde v nich jednotlivá data najdeš.
Nevím, jestli jsem to napsal aspoň trochu srozumitelně. Kdyžtak se ještě koukni sem: http://int21h.ic.cz/?id=42.

Nahlásit jako SPAM
IP: 89.176.249.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
10. 4. 2008   #4
-
0
-

To Mircosoft : Díky, budu se to snažit pochopit :-). Nicméně, zjistil jsem že to buď budu muset udělat v Delphách, nebo se na tento námět vykašlat, protože tohle nakódit v Pascalu ještě tak, aby se to příjemně ovládalo... nevím nevím.

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
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, 1 host

Podobná vlákna

* pointer — založil Honza

Pointer na sub triedu — založil vitamin

Pointer na char — založil _Radek_

Pointer na strukturu — založil Fugii

Pointer na vector — založil drizz

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ý