Nie widzi zasobu, który jest

Odpowiedz Nowy wątek
2006-10-25 13:01
0

Cześć. Mam dodany do zasobu jakiś długi tekst.
Pod nazwą SKRYPT.

Teraz próbuję go wydobyć:
rs:=TResourceStream.Create(hInstance, 'SKRYPT', 'RT_RCDATA');

Dostaję błąd: "Resource SKRYPT not found".

Zasób tworzę tak:

skrypt RCDATA "plik.sql"

Dodaję do maina dyrektywę: {$R skrypt.res}

Resource Hacker pokazuje, że ten skrypt jest, ale środowisko go nie widzi. Czemu?

Pozostało 580 znaków

2006-10-25 15:20
0

Może zamiast tego RCDATA dawaj po prostu DATA.
Ja w ten sposób nauczyłem się kilka dni temu importować ikony:)

Pozostało 580 znaków

2006-10-25 15:31
0
rafal__ napisał(a)

Może zamiast tego RCDATA dawaj po prostu DATA.
Ja w ten sposób nauczyłem się kilka dni temu importować ikony:)

Dobra, poszło, ale jest kolejny problem:

buff: array[0..MAX_PATH] of char;
query: string;

begin
  //tworzę TResourceStream
  rs.Read(buff, sizeof(buff));
  for i:=0 to sizeof(buff) -1 do query:=query+buff[i];
end;

MAX_PATH ma 260. Size tego wszystkiego ma ponad 20 tysięcy. Mogę to jakoś zrobić inaczej niż w pętli odczytywać fragmentami?

Pozostało 580 znaków

2006-10-25 19:09
0

Zamiast pętli zrób przypisanie:

query:=buff;

Jeszcze lepszym rozwiązaniem byłoby wczytanie rs.Read od razu do stringa, ale ten musiałby mieć stały rozmiar, a stałe stringi mogą mieć do 255 (czyli mniej niż MAX_PATH) znaków. Wniosek: tak się nie da. Zastanów się, czy query w postaci string jest Ci w ogóle potrzebne; może możesz do funkcji podać adres buff i będzie OK..


<font color="red">Konto porzucone</span>

Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir 'Szczawik' Włodkowski

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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