Trzy proste pytanka

0

Witam mam takie 3 małe pytania :

1-Czy pliki, do których chcemy zapisywać rekordy muszą być monolityczne ? tzn czy w jednym pliku musi być zapisany jeden i tylko jeden ciąg tego samego rekordu ? Czy też można zapisywać do jednego pliku różne rekordy ?

2-Jak używać funkcji CombineRegion ? Probowałem zadeklarować 3 zmienne typu HRGN

var Reg1,Reg2,Reg3:HRGN

później robie coś takiego:

Reg1:=CreateEllipticRgn(10,10,50,50);
Reg2:=Create EllipticRgn(20,20,30,30);

później funkcja

combineRgn(Reg3,Reg1,Reg2,Xor);

Teraz region nr 3 powinien mieć kształt opony ale nic takiego się nie dzieje dlaczego ?

3- {R Zasob1.res}
(Instrukcje 1)

 {R Zasob2.res}
    (Instrukcje2)

W pierwszym ciągu instrukcji dostępny jest oczywiście zasob1, ale jak wygląda sytuacja w przypadku instrukcji 2 czy dostępny jest dla nich tylko zasob 2 czy tez oba, a jezeli oba to co się stanie jeżeli umieszczone w zasobach dane będą opatrzone takimi samymi identyfikatorami ?

0

ad. 1 Nie.
ad. 2 Help.
ad. 3 Oba.

0

ad. 1 Nie.

Mozesz uzyc takiego tricku. Powiedzmy ze plik sklada sie z rekordu TRec1 o rozmiarze jakims a potem z ciagu 10 rekordow TRec2 o innym rozmiarze. I chcesz to odczytac.
var
F:file of byte;
R1: TRec1;
AR2: array of TRec2.

begin
AssignFile(F, nazwa);
Reset(F);
BlockRead(F, R1, SizeOf(TRec1));
SetLength(AR2, 10);
BlockRead(F, AR2[0], SizeOf(TRec2)*10);
CloseFile(F);

PS. Zapis analogicznie

0

mi raczej chodziło o rozwiązanie na streamach ,ale Twoje pq też jest dobre...

1 użytkowników online, w tym zalogowanych: 0, gości: 1