Zasób ze stringiem

0

Jak STWORZYĆ zasób, w którym będzie bardzo duży string?

0

3 wyjścia:

  • dodajesz do pliku (Add to project) plik *.RC czyli zwykły opis zasobów i kompilujesz projekt
  • kompilujesz plik *.RC poprzez brcc32.exe i wynikowy plik *.RES dodajesz do projektu
  • w kodzie delphi dajesz (tak samo jak się daje działy var, const czy type) dział ResourceString i w nim deklarujesz sobie zmienne stosownych typów.
0
Szczawik napisał(a)

3 wyjścia:

  • dodajesz do pliku (Add to project) plik *.RC czyli zwykły opis zasobów i kompilujesz projekt
  • kompilujesz plik *.RC poprzez brcc32.exe i wynikowy plik *.RES dodajesz do projektu
  • w kodzie delphi dajesz (tak samo jak się daje działy var, const czy type) dział ResourceString i w nim deklarujesz sobie zmienne stosownych typów.
  1. Mógłbyś rozwinąć jak mniej więcej ma wyglądać plik rc?
    (to jest duży string z pojedyńczymi cudzysłowami)
  2. Możesz trochę więcej napisać o resourceString i wydobyciu?
0

Odnośnie (1) - tu masz jakiś na szybko znaleziony opis stringów w zasobach: http://www.cacs.louisiana.edu/~mgr/404/burks/language/pascal/uddf/pages/resource.htm

Odnośnie (2): na pustej formie umieść zwykłe Memo1.

resourcestring
  x = 'To jest długi tekst z apostrofami ('') oraz cudzysłowami (")'#13#10
    + 'To jest długi tekst z apostrofami ('') oraz cudzysłowami (")'#13#10

// Tutaj może być długi tekst - powyżej 255 (jak się nie mylę granicą jest 65535).

    + 'To jest długi tekst z apostrofami ('') oraz cudzysłowami (")'#13#10
    + 'To jest długi tekst z apostrofami ('') oraz cudzysłowami (").';

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Text:=x;
end;

Wniosek: x jest zwykłą stałą typu string, ale po kompilacji będzie w zasobach i stamtąd będzie pobierane przez kod do wykorzystania.

Jak potrzebujesz dłuższe ciągi znaków to użyj zasobów ze zdefiniowanym typem DATA, na przykład taki plik *.rc:

mojtekst DATA "plik.txt"

Tekst załączysz w dodatkowym pliku. W Delphi dajesz Add To Project (wskazujesz ten plik *.rc). W kodzie Delphi wczytujesz to do TResourceStream(hInstance, 'mojtekst') i wykorzystujesz jak tam chcesz.

0
Szczawik napisał(a)

Jak potrzebujesz dłuższe ciągi znaków to użyj zasobów ze zdefiniowanym typem DATA, na przykład taki plik *.rc:

mojtekst DATA "plik.txt"

Tekst załączysz w dodatkowym pliku. W Delphi dajesz Add To Project (wskazujesz ten plik *.rc). W kodzie Delphi wczytujesz to do TResourceString(hInstance, 'mojtekst') i wykorzystujesz jak tam chcesz.

OK, a w jakiej blibliotece jest TResourceString?
Bo help mi nic na ten temat nie mówi

0

Miało być TResourceStream (unit Classes). Z rozpędu wyszło mi TResourceString, ale już w poprzednim poście poprawiłem, aby nikt się nie zasugerował. Sorry :)

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