Hirdetés
- Elalmásodik a Xiaomi: 100 wattos töltéssel érkezik a 16 Pro Max
- Nincs megállás akkuméretben
- One mobilszolgáltatások
- Hivatalos a One UI 8 frissítés közzététele
- Akciófigyelő: Megnyílt a Xiaomi hivatalos magyar webáruháza
- Samsung Galaxy S25 - végre van kicsi!
- Törik-e a Pixel Pro, mint a tavalyi Fold?
- Vivo X200 Pro - a kétszázát!
- Xiaomi 13 - felnőni nehéz
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
Drótszamár
őstag
válasz
Drótszamár #832 üzenetére
Nem vagy fenn msn-en.
10.2 Típusos file-ok
A típusos file-ok alkalmazásával olyan adathalmazokat is létrehozhatunk, melyek sorai azonos típusú (nem kizárólag szöveges) elemeket tartalmaznak. Az ilyen állományok deklarációjában azt kell megadni, hogy a file soraiban tárolt adatok milyen típusúak legyenek. A file típusa lehet egyszerû vagy összetett, de nem lehet file vagy objektum típus. Például:
var f1:file of integer;
f2:file of real;
Azonban gyakrabban használunk összetett típusokat egy file típusaként.
type tanulotipus=record
neve:string[25];
osztalya:string[5];
atlaga:real;
end;
var f_iskola:file of tanulotipus;
Az f_iskola azonosítóhoz rendelt állomány minden sora egy-egy tanulo rekord lesz, és így az iskola összes tanulójának adatait egyetlen file-ban tárolhatjuk. A file megnyitására a már ismert eljárások használhatók (kivéve Append):
Reset(f_iskola); {létezõ file}
Rewrite(f_iskola); {lehet nem létezõ is}
A szöveges állományoktól eltérõen, a Reset-tel történõ megnyitás után nem csak olvashatunk a file-ban, hanem írhatunk is hozzá. A Rewrite használatával is elvégezhetjük mind a két tevékenységet, de ha már létezõ file-t nyitunk meg így, akkor a tartalma elvész. A file-ba írás (Write, Writeln) ill. az abból való olvasás (Read, Readln) a szöveges állományoknál ismertetett módon történik. A típusos file-okban tetszés szerint mozoghatunk, ehhez a következõ parancsot használjuk:
Seek(file_valtozo, index);
A Seek eljárás paramétereként meg kell adni annak az állománynak az azonosítóját, amelyben mozogni akarunk, és annak a sornak a számát, ahová a file-mutatót állítani akarjuk. Fontos tudni, hogy a file elsõ sorának indexe 0, a másodiknak 1, és így tovább. Ahhoz, hogy az indexben megadott sorszám biztosan elérhetõ sort jelöljön, tudnunk kell a file pontos méretét, vagy a file-mutató aktuális helyét.
FileSize(file_valtozo) {file mérete}
FilePos(file_valtozo) {aktuális pozíció}
A FileSize függvény visszatérési értéke egy longint típusú szám, mely a file-ban található sorok száma (az utolsó sor indexe).
Ha az állomány üres, akkor a függvény értéke 0. A FilePos függvény eredménye egy longint típusú szám, mely a file aktuális sorának indexe. Ha a file-mutató az elsõ sorra mutat, akkor a függvény értéke 0. Ha az aktuális pozíció a file vége, akkor a függvény értéke megegyezik a FileSize függvény értékével. A Seek eljárásban az index helyén is alkalmazhatók ezek a függ- vények.
Ha az állományunk utolsó soraiban olyan adatok vannak, melyeket törölni akarunk a file-ból, akkor a file végét egy- szerûen levágjuk a Truncate paranccsal:
Truncate(file_valtozo);
Az eljárás a file-mutató aktuális pozíciójától csonkolja a file-t, az utolsó sor az aktuális pozíció lesz. Készítsünk egy programot, mely egy már létezõ file-ban keres!
[link]
Ezeket kell eltárolni: minden futtatás idejét, a mátrix 12. sorát, és négyzetösszegét.
Tehát
type
matrixsor : array[1..11] of integer;
egyadat : record
ora = Byte;
perc = Byte;
sor = matrixsor;
osszeg = Word;
end;
var
f = file of egyadat;
m = egyadat;
begin
...
m feltöltése;
assign(f,'matrix.dat');
{$I-} reset(f); {$I+}
If IoResult<>0
Then
Begin
rewrite(f); //nem létezik a file, létrehozod újra
End;
seek(f,(filesize(f)-1);
write(f,m);
...
end.
[Szerkesztve]
Új hozzászólás Aktív témák
- Milyen billentyűzetet vegyek?
- Elalmásodik a Xiaomi: 100 wattos töltéssel érkezik a 16 Pro Max
- Nincs megállás akkuméretben
- Erősítő, hangfalak
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Chieftec játék értékes nyereményekkel!
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Canon EF 300mm f/2.8L IS USM teleobjektív - Újszerű -
- EVGA 1080Ti SC2 11GB Ajándékokkal, Ingyenes szállítás!
- AMD Ryzen 7 5800X3D 8-Core 3.4GHz - Garancia 2026.10.17 - Ingyen posta
- ASUS ROG STRIX 1000W GOLD AURA EDITION - Garancia 2034.10.03
- ASUS ProArt GeForce RTX 4080 SUPER OC 16GB - Garancia 2027.10.03
- Lenovo ThinkPad T14 G1 Ryzen 5 PRO 4650U 16GB 512GB 1 év garancia
- Samsung Galaxy A12 64GB Kártyafüggetlen 1 év Garanciával
- LG 48C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
- iKing.Hu - Motorola Razr 50 Ultra Midnight Blue Használt, karcmentes állapotban 12 GB RAM / 512 GB
- NYÁRI BOMBA AKCIÓK! PSN, STEAM, UBISOFT CONNECT, EA APP, XBOX EREDETI KULCSOK 100% GARANCIA
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest