/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Gemme Binaer Array i fil
Fra : Kurt


Dato : 03-05-05 13:30

Jeg har brug for at gemme et array i en fil.
Hvordan gør man det?

/Kurt



 
 
Uffe Kousgaard (03-05-2005)
Kommentar
Fra : Uffe Kousgaard


Dato : 03-05-05 15:27

Hvis din koder ser sådan ud:

var
mitarray: array [1..100] of double;
f: file;
begin
assignfile(f,'minfil.xxx');
rewrite(f);
write(f,mitarray);
closefile(f);
end;

Hvis det er et dynamisk array, er du nødt til at lægge en løkke ind, som
skriver hvert element for sig:

for i:= 1 to 100 do write(f,mitarray[i]);

Hvis du nu gør det alligevel med et dynamisk array, hvad sker der så? (Ja,
jeg kender selv svaret.....)

hilsen
Uffe

"Kurt" <kurt_g@guldbaek.net> wrote in message
news:42776ebc$0$312$edfadb0f@dread11.news.tele.dk...
> Jeg har brug for at gemme et array i en fil.
> Hvordan gør man det?
>
> /Kurt
>
>



Kurt (04-05-2005)
Kommentar
Fra : Kurt


Dato : 04-05-05 06:27

"Uffe Kousgaard" <oh@no.no> wrote in message
news:42778a54$0$160$edfadb0f@dtext01.news.tele.dk...
> Hvis din koder ser sådan ud:
>
> var
> mitarray: array [1..100] of double;
> f: file;
> begin
> assignfile(f,'minfil.xxx');
> rewrite(f);
> write(f,mitarray);
> closefile(f);
> end;
>
> Hvis det er et dynamisk array, er du nødt til at lægge en løkke ind, som
> skriver hvert element for sig:
>
> for i:= 1 to 100 do write(f,mitarray[i]);
>
> Hvis du nu gør det alligevel med et dynamisk array, hvad sker der så? (Ja,
> jeg kender selv svaret.....)
>
> hilsen
> Uffe

Compileren protesterer mod linien
write(f,mitarray);
med "Incompatible tupes: 'procedure, untyped pointer or untyped parameter'
and 'Array'"

/Kurt



Uffe Kousgaard (04-05-2005)
Kommentar
Fra : Uffe Kousgaard


Dato : 04-05-05 07:48

"Kurt" <kurt_g@guldbaek.net> wrote in message
news:42785d2d$0$201$edfadb0f@dread11.news.tele.dk...

> Compileren protesterer mod linien
> write(f,mitarray);
> med "Incompatible tupes: 'procedure, untyped pointer or untyped parameter'
> and 'Array'"

OK, så prøv med følgende:

type
Tarray = array [1..100] of double;
var
mitarray: Tarray;
f: file of Tarray;
(resten som før).

hilsen
Uffe



Kurt Guldbæk (04-05-2005)
Kommentar
Fra : Kurt Guldbæk


Dato : 04-05-05 23:21

"Uffe Kousgaard" <oh@no.no> skrev i en meddelelse
news:4278701c$0$186$edfadb0f@dtext01.news.tele.dk...
> "Kurt" <kurt_g@guldbaek.net> wrote in message
> news:42785d2d$0$201$edfadb0f@dread11.news.tele.dk...
>
>> Compileren protesterer mod linien
>> write(f,mitarray);
>> med "Incompatible tupes: 'procedure, untyped pointer or untyped
>> parameter'
>> and 'Array'"
>
> OK, så prøv med følgende:
>
> type
> Tarray = array [1..100] of double;
> var
> mitarray: Tarray;
> f: file of Tarray;
> (resten som før).
>
> hilsen
> Uffe
>
Tak, det hjalp!
/Kurt



Finn Bindeballe (03-05-2005)
Kommentar
Fra : Finn Bindeballe


Dato : 03-05-05 15:49

hej

kik i help paa bloackread, og bloackwrite ... lige hvad di skal bruge....

/F

Kurt wrote:

>Jeg har brug for at gemme et array i en fil.
>Hvordan gé·¨ man det?
>
>/Kurt
>
>
>
>

Kurt Guldbæk (03-05-2005)
Kommentar
Fra : Kurt Guldbæk


Dato : 03-05-05 21:21

"Finn Bindeballe" <postmaster@127.0.0.1> skrev i en meddelelse
news:42778f78$0$244$edfadb0f@dread11.news.tele.dk...
> hej
>
> kik i help paa bloackread, og bloackwrite ... lige hvad di skal bruge....
>
> /F
>
> Kurt wrote:
>
>>Jeg har brug for at gemme et array i en fil.
>>Hvordan g? man det?
>>
>>/Kurt
>>
>>
>>
Tak for hjælpen til jer begge.
/Kurt



lap[4800] (07-05-2005)
Kommentar
Fra : lap[4800]


Dato : 07-05-05 06:48

Hej Kurt
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Load: TButton;
Save: TButton;
Fill: TButton;
procedure SaveClick(Sender: TObject);
procedure LoadClick(Sender: TObject);
procedure FillClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
const
CDoublesFile = 'XDoubles.Bin';

type
ADouble = array of double;
//PADouble = ^ADouble;
var
GlobalArray: ADouble; // Array to be loaded / saved

Procedure SaveArrayToFile (stuff: ADouble; FileName : TFileName);
var
elCount: integer;
i: integer;
myStream: TMemoryStream;
begin
myStream := TMemoryStream.Create;
try
elCount := (High(stuff) - Low(stuff)) + 1;
myStream.Write(elCount, SizeOf(integer));

for i := Low(stuff) to High(stuff) do
myStream.Write(stuff[i], SizeOf(double));

myStream.Seek(0, soFromBeginning);
myStream.SaveToFile(FileName);
finally
myStream.Free;
end;
end;

Procedure LoadArrayFromFile (stuff: ADouble; FileName : TFileName);
var
elCount: integer;
i: integer;
myStream: TMemoryStream;
begin
// Read back, in a dynamic array.
if not FileExists(FileName) then
exit;

myStream := TMemoryStream.Create;
try
myStream.LoadFromFile(FileName);
myStream.Read(elCount, SizeOf(integer));

if elCount > 0 then
begin
SetLength(stuff, elCount);

for i := Low(stuff) to High(stuff) do
myStream.Read(stuff[i], SizeOf(double));
end;
finally
myStream.Free;
end;
end;


procedure TForm1.SaveClick(Sender: TObject);
begin
SaveArrayToFile (GlobalArray, CDoublesFile);
end;

procedure TForm1.LoadClick(Sender: TObject);
var
i : Integer;
begin
LoadArrayFromFile (GlobalArray, CDoublesFile);
//Display GlobalArray
ListBox1.Clear;
for i := Low(GlobalArray) to High(GlobalArray) do
ListBox1.Items.Add(Format('%f', [GlobalArray[i]]));
end;
procedure TForm1.FillClick(Sender: TObject);
var
i : Integer;
begin
SetLength(GlobalArray,12); //Add space for 12 elements
// Fill "GlobalArray" with stuff.
for i := Low(GlobalArray) to High(GlobalArray) do
GlobalArray[i] := Random(High(GlobalArray)) / 42.;
end;

initialization
Randomize;
end.

Mvh. lap[4800]


"Kurt" <kurt_g@guldbaek.net> skrev i en meddelelse
news:42776ebc$0$312$edfadb0f@dread11.news.tele.dk...
> Jeg har brug for at gemme et array i en fil.
> Hvordan gør man det?
>
> /Kurt
>
>



Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste