zapis do pliku typowanego

0

T jest ok

type
Trec = record
 tytul: string[255];
 tresc: string[255];
end;

var
plik: file of Trec;
rec: Trec;

Jednak gdybym chciał tresc: string[1255]; lub tresc:ansistring;
to już nie przejdzie idzie to ominąć

0

Spróbuj

array[1..1250] of char;
0

Spróbuj

array[1..1250] of char;

tyle że wtedy bede miał problem przypisac zawartość memo do takiej tablicy

0

to zapisz kilka stringów i już :)

0

tyle że wtedy bede miał problem przypisac zawartość memo do takiej tablicy

Chciałbym mieć takie problemy !

var
  s: string;
  i: integer;
  Arr: array[0..1250] of Char;
begin
  s := Memo1.Text;
  for i := 1 to Length(s) do
  begin
    if i > Length(Arr) - 1 then Break;
    Arr[i - 1] := s[i];
  end;
end;
0

już lepiej tak: ;p

var
  s: string;
  i,len: integer;
  Arr: array[1..1250] of Char;
begin
 s:= Memo1.Text;
 len:=Length(s);
 if len>1250 Then len:=1250; 
 for i := 1 to len do
  Arr[i] := s[i];
end; 

a w drugą strone

S:=String(arr);

0

jack, Szymek:

  • po co te petle skrobiecie jak jest Move() ? :-P
0

T jest ok

type
Trec = record
 tytul: string[255];
 tresc: string[255];
end;

var
plik: file of Trec;
rec: Trec;

Jednak gdybym chciał tresc: string[1255]; lub tresc:ansistring;
to już nie przejdzie idzie to ominąć

  1. Rekord zapisywany do pliku rekordowego musi mieć stałą długość (więc AnsiString odpada).
  2. ShortString (czyli stara Pascalowa deklaracja string[n]) ma maksymalną długość 255.
  3. Jak chcesz string 1255, napisz:
TRec = record
  Tytul: string[255];
  Tresc: array[0..1254] of Char;
end;

Teraz pole Tresc jest kompatybilne z łańcuchami PChar (przy włączonej dyrektywie $X, ale jest to ustawienie domyślne), więc nie powinno być problemu z przypisaniem zwykłego stringa (ale tablica musi być indeksowana od zera!).

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