Z c++

0

czesc
mam takie cos:

Struct header
{
int cos;
};

struct hFile
{
int cos
};

i mam wczyywanie z pliku:

fread(&header, 1, sizeof(header), fp);
fread(&hFile, 17, sizeof(hFile), fp);

i mam pytanie:
jak w delphi wczytac z pliku takie cos?

0

nie jestem pewny ale chyba struct to w delphi jest type

wiec type nazwa = record
cos : integer;
end;

?

0

to wiem ale jak z pliku odczytac dwa rozne rekordy?

0
type opek=record
cos : integer;
end;


type opek2=record
cos : integer;
end;

var
f : file;
header : opek;
header2 : opek2;
begin
assignfile(f,sciezka);
reset(f,1);
blockread(f,opek,sizeof(header));
blockread(f,opek,sizeof(header2));
closefile(f);
end;

i masz

//my_nick zes sie mnie czepil :P

0

Małe sprostowanie: struct to odpowiednik record, ale w C jest inna kolejność podczas definiowania typów. Nie trzeba dwa razy powtarzać type w kodze delphi.

ZIOMBER: na borland.com gdzieś jest taki artykulik o poprawnym pisaniu kodu, KONIECZNIE go przeczytaj!

0

Jeszcze jedno pytanko :)

gdy mam takie cos:

tak wczytuje w cpp
struct cos
{
int cos;
};
...
cos items[16] = {0};
fread(&items, 16, sizeof(cos), fp);

a tak w delphi:
type
cos=record
cos: integer;
end;
...
var
items: array[1..16] of cos;
f: file;
..
blockread(f, items, sizeof(items));

to wywala mi ze program wykonal nieprawidlowa operacje ..., wiecie jak by to poprawic by dzialalo?

p.s
thx za wczesniejsze odp :)

0

a sproboj tak zeby wsadzic
items: array[1..16] of cos; do type

type tplik=record
items: array[1..16] of cos;
end;

i wtedy var xosik : tplik;
i blockread(f,xosik,sizeof(xosik));

ale blad mzoe byc tym spowodowany ze plik zapisany zostal inaczej :D

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