Article View: pl.comp.lang.delphi
Article #346884Odczyt tablicy z DLL
From: Pancio
Date: Tue, 27 Nov 2018 19:08
Date: Tue, 27 Nov 2018 19:08
44 lines
2608 bytes
2608 bytes
Witam,
Mam pewien problem i z wielka nadzieja pisze ten post, bo moze ktos moglby mi pomoc.
Mam do napisania mini gre w ktorej jedna plansza ma wymiar 20x20. Utworzylem plik z planszami i wszystko bylo w porzadku, dopoki plansze wczytywalem w ten sposob:
type
Poziom = record
Plansza : array[1..20] of string[20];
end;
var
f : file;
p : Poziom;
begin
AssignFile(f, 'nazwa pliku');
Reset(f, SizeOf(p));
Seek(f, nr_planszy);
BlockRead(f, p, 1);
CloseFile(f);
end;
Teraz jednak mam potrzebe, aby plik z planszami umiescic w wiekszym pliku z innymi zasobami DLL. No i tutaj pojawia sie problem z odczytem, bo dziala on jedynie w przypadku pierwszej planszy. Innych za diabla nie moge wczytac. Robie to tak:
var H : THandle;
Stream : TResourceStream;
mStream : TMemoryStream;
begin
H := LoadLibrary('nazwa_pliku_z_zasobami.dll');
mStream := TMemoryStream.Create;
try
Stream := TResourceStream.Create(H, 'PLANSZE', RT_RCDATA);
mStream.LoadFromStream(Stream);
mStream.Seek(SizeOf(Poziom), 0);
mStream.ReadBuffer(p, SizeOf(Poziom));
Stream.Free;
finally
mStream.Free;
FreeLibrary(H);
end;
end;
Czy moge prosic "ludzi dobrej woli" o pomoc i podpowiedz, co mam poprawic w kodzie. Wedlug mnie problem lezy w procedurze Seek, ale nie wiem, jak ustawic kursor, aby poprzez ReadBuffer wczytaj N-ty poziom gry.
--
Pancio
Technical Details
Message-ID:
<c81d1cc2-3211-4e6e-b657-6051d1a19259@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder4.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.166.216.MISMATCH!q69no113011itb.0!news-out.google.com!v141ni100ita.0!nntp.google.com!k10no113090itk.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Received: by 2002:a6b:6418:: with SMTP id t24mr1350704iog.3.1543345735726; Tue, 27 Nov 2018 11:08:55 -0800 (PST) X-Received: by 2002:a9d:24c3:: with SMTP id z61mr24980ota.1.1543345735418; Tue, 27 Nov 2018 11:08:55 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder4.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.166.216.MISMATCH!q69no113011itb.0!news-out.google.com!v141ni100ita.0!nntp.google.com!k10no113090itk.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Tue, 27 Nov 2018 11:08:55 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.228.225.215; posting-account=7yo-vwoAAACTPHSJeUQ3HOShk2-PA34z NNTP-Posting-Host: 89.228.225.215 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <c81d1cc2-3211-4e6e-b657-6051d1a19259@googlegroups.com> Subject: Odczyt tablicy z DLL From: Pancio <witek.skowronski@gmail.com> Injection-Date: Tue, 27 Nov 2018 19:08:55 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit