🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346884

Odczyt tablicy z DLL

#346884
From: Pancio
Date: Tue, 27 Nov 2018 19:08
44 lines
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-mail

Show 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