AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Array speichern und laden

Ein Thema von Melvyn · begonnen am 17. Mai 2009 · letzter Beitrag vom 17. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2   
Melvyn

Registriert seit: 10. Mai 2009
13 Beiträge
 
#1

Array speichern und laden

  Alt 17. Mai 2009, 18:22
Hi,

wie kann ich ein Werte eines Arrays in einer externen Datei speichern und durch laden wieder in einem Stringrid ausgeben lassen?
ich bin bis jetzt soweit gekommen:
Delphi-Quellcode:
type TValue=record
 a:integer ;
 b:boolean ;
end;

type Tf= array[1..81] of TValue ;
var sp: file of Tf;

procedure TForm1.FormCreate(Sender: TObject);
begin
 if fileexists('xxx.dat')
 then assignfile(sp,'xxx.dat')
 else
  begin
   assignfile(sp,'xxx.dat');
   rewrite(sp);
   closefile(sp);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject)
var hilf:Tf; x,y:integer ;
begin
 reset(sp);
 write(sp,hilf);
 closefile(sp);
end;

procedure TForm1.Button2Click(Sender: TObject)
var hilf:Tf; x,y:integer ;
begin
 reset(sp);
 read(sp,hilf);
 StringGrid1.Cells[x,y]:=hilf;
 closefile(sp);
end;
das speichern funktioniert, die datei wird erzeugt und es steht auch was drin, aber die ausgabe klappt nicht, da kommt die fehlermeldung: Inkompatible Typen 'String' und 'Tf'

bitte helft mir...
Melvyn
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#2

Re: Array speichern und laden

  Alt 17. Mai 2009, 18:26
erstmal mußt du die Datei zum Schreiben auch mit Schreibzugriff öffnen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject)
var hilf:Tf; x,y:integer ;
begin
rewrite(sp);
und hilf ist ein Array of Record und Cells ist ein String
StringGrid1.Cells[x,y] := hilf; da mußt du also hilf einzeln durchgehn und die Integer/Boolean auch noch in einen String umwandeln
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Array speichern und laden

  Alt 17. Mai 2009, 18:28
Was soll den um Grid ausgegeben werden?
Der Typ kann natürlich so nicht in eine Zelle geschrieben werden.
Markus Kinzler
  Mit Zitat antworten Zitat
Melvyn

Registriert seit: 10. Mai 2009
13 Beiträge
 
#4

Re: Array speichern und laden

  Alt 17. Mai 2009, 18:35
mmh aber erzeugt rewrite nicht eine komplett neue datei?
meines wissens nach is doch reset der befehl um eine datei zu öffnen...
den rest ahb ich nicht kapiert, kannst du mir ein beispiel geben was du meinst?

@mkinzler: in das stringgrid werden zahlen und buchstaben eingegeben und abgespeichert. die sollen dann auch wieder ausgegeben werden...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#5

Re: Array speichern und laden

  Alt 17. Mai 2009, 18:44
Delphi-Quellcode:
// Reset - zum lesen öffnen
// Rewrite - zum schreiben öffnen
// Append - zum lesen/schreiben öffnen und cursor ans Dateiende


// aus system.pas:

function _ResetText(var t: TTextRec): Integer;
begin
  Result := OpenText(t, fmInput);
end;

function _RewritText(var t: TTextRec): Integer;
begin
  Result := OpenText(t, fmOutput);
end;

function _Append(var t: TTextRec): Integer;
begin
  Result := OpenText(t, fmInOut);
end;

Zitat von Melvyn:
@mkinzler: in das stringgrid werden zahlen und buchstaben eingegeben und abgespeichert. die sollen dann auch wieder ausgegeben werden...
siehe:
Zitat von himitsu:
und hilf ist ein Array of Record und Cells ist ein String
StringGrid1.Cells[x,y] := hilf; da mußt du also hilf einzeln durchgehn und die Integer/Boolean auch noch in einen String umwandeln
hilf <> string
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Melvyn

Registriert seit: 10. Mai 2009
13 Beiträge
 
#6

Re: Array speichern und laden

  Alt 17. Mai 2009, 18:51
kann ich nicht einfach hilf so umwandeln das es im grid ausgegeben wird?
wenn ja wie mach ich das

(ich kenne nur StrToInt und IntToStr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Array speichern und laden

  Alt 17. Mai 2009, 18:55
Hier brauchst du BoolToStr() und IntToStr() oder Format()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#8

Re: Array speichern und laden

  Alt 17. Mai 2009, 18:59
tja, das mußt du schon selber machen

z.B: dein hilf-Array durchgehn, umwandeln und die Ergebnisse an irgendwas übergeben ...
Delphi-Quellcode:
for i := 1 to 81 do begin
  StringGrid1.Cells[0,i] := IntToStr(hilf[i].a);
  StringGrid1.Cells[1,i] := BoolToStr(hilf[i].b);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Melvyn

Registriert seit: 10. Mai 2009
13 Beiträge
 
#9

Re: Array speichern und laden

  Alt 17. Mai 2009, 19:28
achso jetz hab ichs kapiert

aber mal noch ne andre frage: wie lasse ich buchstaben, die im stringgrid stehn in zahlen umwandeln?

hab mir das so gedacht (funktioniert aber nicht):
Stringrid1.Cells[x,y]:=chr(ord(Stringgrid1.cells[x,y])-16); meinetwegen wenn in[0,0] ein A steht das es zu einer 1 umgewandelt wird, mit der gerechnet weden kann...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#10

Re: Array speichern und laden

  Alt 17. Mai 2009, 19:33
einen String kannst du nicht so direkt in eine Zahl umwandeln, wenn dann könntest du höchstens das 1. Zeichen im String also [1] so verarbeiten
Stringrid1.Cells[x,y]:=chr(ord(Stringgrid1.cells[x,y][1])-16); aber das hat ja jetzt nichts mit dem Array-Datei-Problem dieses Threads zu tun
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz