Текущий архив: 2006.06.11;
Скачать: CL | DM;
Вниз
ка кзаписать структуру в нетепизированный файл? Найти похожие ветки
← →
novice06 (2006-05-26 15:18) [0]есть
...
type
TFirstType = record
a : integer ;
b : string ;
c : array [0..3] of boolean ;
end;
type
TSecondType = record
f : real ;
s : string ;
h : array[0..10] of TfirstType ;
end ;
...
var
a : TSecondType ;
begin
a.a := 10 ;
a.b := "ñòðîêà" ;
a.c[0] := true
a.h[0] := .....
....
как сохранить переменную А (её содержимое) в нетипизированный файл ???
← →
tesseract © (2006-05-26 15:27) [1]
type
TFirstType = record
a : integer ;
b : string [25];
c : array [0..3] of boolean ;
end;
type
TSecondType = record
f : real ;
s : string[25] ;
h : array[0..10] of TfirstType ;
end ;
var f:file;
NumWriten;
begin
AssignFile(F,filename);
try
Reset(F,SizeOf(TsecondType));
BlockWrite(f,a,1,NumWriten);
finally
CloseFile(F);
end;
end;
← →
antonn © (2006-05-26 15:33) [2]кстати, не подскажите, как сохранить string[1024]? :)
т.е. мне нужно большую строку сохранить, 255 символов не хватает. может какой другой тип есть?
← →
Desdechado © (2006-05-26 15:36) [3]что мешает сделать 4 шт. по 255
← →
tesseract © (2006-05-26 15:38) [4]antonn Delphi не паскаль, если у тебя ничего не изменно, то DElphi трактует string как AnsiString.
<help>
AnsiString
~2^31 characters 4 bytes to 2GB
8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.
</help>
Только не думай, что 1024 символа больше 2^31 :-)
← →
Desdechado © (2006-05-26 16:07) [5]tesseract © (26.05.06 15:38) [4]
видимо, спрашивалось о строке в записи
а там нельзя динамические строки использовать при сохранении в типизированный файл
кстати, "трактует string как AnsiString" - это зависит от настроек
указанное поведение - по умолчанию, но возможны и другие варианты
← →
antonn © (2006-05-26 16:21) [6]Desdechado © (26.05.06 15:36) [3]
для простоты и удобства:type
TTextRec = record
t1:string[255];
x,y:integer;
//и еще кучка св-в
end;
а теперь нужно строку поболее, чтобы потом просто сделать примерно так:
label1.caption:=textrec.t1 или textrec.t1:=label1.caption;
tesseract © (26.05.06 15:38) [4]
а как это в коде будет выглядеть? сорри за возможный тупизм:)
← →
tesseract © (2006-05-26 16:22) [7]
> указанное поведение - по умолчанию, но возможны и другие
> варианты
Это я указал. А про динамику как-то не учёл :-(
Мало работаю со строками.
тогда выход один - array[0..1024] of char;
← →
han_malign © (2006-05-26 16:26) [8]
> как сохранить string[1024]? :)
- а без улыбок - если нужен одинаковый размер записей, без динамических изысков и сканирований:
szStr: array[0..1024]of char;// +1 символ для терминирующего нуля
lstrcpyn(szStr, PChar(str), sizeof(szStr));
Str:= szStr;
← →
antonn © (2006-05-26 18:51) [9]han_malign © (26.05.06 16:26) [8]
lstrcpyn(szStr, PChar(str), sizeof(szStr));
Str:= szStr;
эх, этож придется по всему документу прошариваться, позаменять (моя структура много где мелькает)...
Страницы: 1 вся ветка
Текущий архив: 2006.06.11;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.041 c