Autor Beitrag
g1o2k4
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: So 04.05.08 16:34 
hi

ich hab ein array in dem ich primzahlen speichern will. leider ist es riesig...alle zahlen brauchen in ner txt datei 150mb.
jetzt wollte ich das array in ner anderen dll oder rc-datei lagern, damit ich den dll source überhaupt in der ide öffnen kann.

könnt ihr mir sagen wie ich ein array aus einer dll exportiere und in einer anderen importiere ?
bzw das gleiche mit ner rc-datei ?

das array sieht wie folgt aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
  PrimeList: array[0..xxxx] of integer = (35711131719232931,
    3741434753596167717379838997101103107109,
    113127131137139149151157163167173179181191193,........);


dieses array würde ich gerne in einer anderen dll oder recource datei liegen haben. wie importier/exportier ich so eine variable ?
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: So 04.05.08 17:41 
Hi user profile icong1o2k4,

mal abgesehen vom Sinn oder Unsinn von deinem Vorhaben kann ich dir ein bißchen was über die Recourcen-Version erzählen.

Als erstes erstellst du eine Textdatei. Hier schreibst du deine Integers als strings rein (type Integer = -2147483648..2147483647// reicht das überhaupt bei 150mb?):

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
STRINGTABLE
BEGIN
  1, "3"
  2, "5"
  3, "7"
  4, "11"
  .
  .
  .
  n, "..."
END


Btw.: Was ist mit der zwei?

Diese Datei benennst du etwa so: primzahlen.rc

Dann machst du die Konsole auf und tippst:

ausblenden Quelltext
1:
brcc32 [genauer Pfad zu der Datei]\primzahlen.rc					

Wenn alles gut lief, dann sollte sich im Verzeichnis in dem sich primzahlen.rc befindet auch die Datei primzahlen.res befinden. Diese kannst du dann in all' deine Projekte einbinden und zwar so:

ausblenden Delphi-Quelltext
1:
2:
{$R *.dfm} // das wird von Delphi eingetragen
{$R primzahlen.res}

Mit dieser function

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function GetString(const Index: integer): string;
var
  buffer: array[0..255of char;
  ls: integer;
begin
  Result := '';
  ls := LoadString(hInstance,
    Index,
    buffer,
    sizeof(buffer));
  if ls <> 0 then Result := buffer;
end;

kannst du über den Index auf die strings zugreifen. Beim Beispiel deines arrays etwa so:

ausblenden Delphi-Quelltext
1:
2:
for i := 1 to n do
  PrimeList[i-1] := StrToInt(GetString(i));

Gruß

Calculon
--

_________________
Hallo Mutti
g1o2k4 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: So 04.05.08 18:13 
danke. das sieht eigentlich perfekt aus bis aus die tatsache das ich keine lust hab alle primzahlen mit anführungsstrichen etc zu formatieren ^^
vom integer bereich sollte es reichen.

geht dasselbe nicht mit nem array ?
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: So 04.05.08 20:07 
Okay, dann wäre es vielleicht sinnvoller das array binär abzuspeichern. Hier gibt's'n Tutorial wie das geht. Hab' es selber aber noch nie gemacht...

Gruß

Calculon
--

_________________
Hallo Mutti
g1o2k4 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: So 04.05.08 20:11 
ok werd ich mal testen. danke für die hilfe !