Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Beratung und Hilfe Array Speichern (https://www.delphipraxis.net/174649-beratung-und-hilfe-array-speichern.html)

IltisvdT 3. Mai 2013 08:09

Beratung und Hilfe Array Speichern
 
Hallo,
ich benötige einmal mehr eure Beratung und Hilfe. Ich habe einige Daten und möchte ie gerne speichern. Soweit so gut. Es handelt sich ausschließlich um Zahlenwerte (int und double). Es ist aber ein Mischmasch aus einzelnen Variablen und eindmensionalen Arrays. Diese wüde ich nun gerne speichern. Mein Anspruch ist aber, dass ich die Daten in einem externen Programm auch bearbeiten kann. Hier im Forum wird dafür eine csv vorgeschlagen. Nicht so wichtig ist mir die Darstellungsform. Soll heißen, dass es nicht sofort ersichtlich sein muss, welche Zahl für was steht. Könnt ihr mir Tipps geben, wo ich etwas darüber lesen kann? Oder mir vielleicht auch Codebrocken zur Verfügung stellen? Vielen Dank

DeddyH 3. Mai 2013 08:18

AW: Beratung und Hilfe Array Speichern
 
Zum externen Bearbeiten wirst Du um eine Speicherung in Textform wohl nicht herumkommen. Geeignete Formate könnten z.B. XML, JSON oder ggf. sogar IniFiles sein. Da es sich nach meiner Lesart anscheinend um irgendwie verschachtelte Daten handeln könnte, halte ich CSV hier für nicht so optimal, aber da kann ich auch irren.

Mavarik 3. Mai 2013 08:34

AW: Beratung und Hilfe Array Speichern
 
Wie wäre es damit die Daten einfach in eine Datei auf die Platte zu schreiben?

Mavarik

IltisvdT 3. Mai 2013 08:44

AW: Beratung und Hilfe Array Speichern
 
Zitat:

Zitat von Mavarik (Beitrag 1213923)
Wie wäre es damit die Daten einfach in eine Datei auf die Platte zu schreiben?

Mavarik

genau das habe ich vor.

Zitat:

Zitat von DeddyH (Beitrag 1213922)
Zum externen Bearbeiten wirst Du um eine Speicherung in Textform wohl nicht herumkommen. Geeignete Formate könnten z.B. XML, JSON oder ggf. sogar IniFiles sein. Da es sich nach meiner Lesart anscheinend um irgendwie verschachtelte Daten handeln könnte, halte ich CSV hier für nicht so optimal, aber da kann ich auch irren.

Verschachtelt...kann ich nicht genau beurteilen. Es sind auch nicht viele Werte. 2 Integervariablen, 1 array of integer und ein array of double. Wenn ich das so gespeichert kriegen würde, dass ich es mit nem Editor oder excel oder was immer öffnen und bearbeiten kann wäre das toll. Dabei würde ich mir das so vorstellen, dass jede neue Variable eine Zeile kriegt, sodass da zwei Einzelwerte untereinanderstehen und dann je ein Array über die ganze Zeile.

Klaus01 3. Mai 2013 08:47

AW: Beratung und Hilfe Array Speichern
 
Guten Morgen,

du solltestt schon wissen, welche Programme die Datei lesen können sollen.
Das grenzt das Abspeicherformat in der Regel stark ein.

Grüße
Klaus

baumina 3. Mai 2013 08:53

AW: Beratung und Hilfe Array Speichern
 
Wenn Du es nicht aufwändig machen magst, nimm eine TStringList, schreibe die Werte mit Add(Zahl) und die Arrays mit Add(Zahl, Zahl, Zahl) dann SaveToFile und du hast schnell eine einfache Textdatei zum bearbeiten.

IltisvdT 3. Mai 2013 09:15

AW: Beratung und Hilfe Array Speichern
 
Zitat:

Zitat von Klaus01 (Beitrag 1213925)
Guten Morgen,

du solltestt schon wissen, welche Programme die Datei lesen können sollen.
Das grenzt das Abspeicherformat in der Regel stark ein.

Grüße
Klaus

Ok, da geb ich dir recht. Ein normaler Editor sollte immer funktionieren. Alles was darüber hinaus geht ist Spielerei.

Zitat:

Zitat von baumina (Beitrag 1213926)
Wenn Du es nicht aufwändig machen magst, nimm eine TStringList, schreibe die Werte mit Add(Zahl) und die Arrays mit Add(Zahl, Zahl, Zahl) dann SaveToFile und du hast schnell eine einfache Textdatei zum bearbeiten.

Mit "nicht zu aufwändig" triffst du es sehr gut. Sowas in der Art hatte ich auch schon gefunden. Nur funktioniert das auch halbwegs gut mit Arrays? Denn die Arrays können mitunter lang werden und sind auch unterschiedlich lang. Von daher würde ich ungern add(array[o],array[1],...) schreiben.

baumina 3. Mai 2013 09:20

AW: Beratung und Hilfe Array Speichern
 
so in der Art meinte ich:

Delphi-Quellcode:
s := '';
for i := 0 to x do
begin
  if i > 0 then s := s + ',';
  s := s + IntToStr(Array[i]);
end;
aStringList.Add(s);

IltisvdT 3. Mai 2013 09:22

AW: Beratung und Hilfe Array Speichern
 
Wow. Vielen Dank. Das sieht vielversprechend aus. Werde es gleich mal probieren.

Sir Rufo 3. Mai 2013 09:23

AW: Beratung und Hilfe Array Speichern
 
Es kommt immer auf die Interpretation der Daten an.

Beispiel:

Ein Texteditor zeigt für eine Datei folgendes an
Code:
42
Preisfrage: Welche Zahl ist dort in der Datei gespeichert?

Antwort: 3276852 (Integer)

Warum nicht 42?

Die Datei beinhaltet folgende Bytes
Code:
00 34 00 32
Mit einem Texteditor werden diese Bytes interpretiert als Text (UTF-8 ohne BOM) und dadurch als 42 angezeigt.
Mein Programm hat aber den Integer-Wert 3276852 dort gespeichert.
Delphi-Quellcode:
program WriteData;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils, Classes;

var
  Stream : TStream;
  Data :  Integer;

begin
  try
    Data := 3276852;

    Stream := TFileStream.Create( 'test.dat', fmCreate );
    try
      Stream.WriteData( Data );
    finally
      Stream.Free;
    end;

  except
    on E : Exception do
      Writeln( E.ClassName, ': ', E.Message );
  end;

end.
Entweder die Struktur der Datei ist dem Programm komplett bekannt, oder es müssen halt Strukturinformationen mit in die Datei (so wie bei XML, JSON, etc.). Dann muss das Programm nur noch wissen, um welches Format es sich handelt und kann die restlichen Strukturinformationen dort herauslesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz