AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi EDIT Inhalte in Datei abspeichern und wieder laden
Thema durchsuchen
Ansicht
Themen-Optionen

EDIT Inhalte in Datei abspeichern und wieder laden

Ein Thema von Andi44 · begonnen am 5. Jan 2008 · letzter Beitrag vom 6. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Andi44

Registriert seit: 24. Jan 2005
12 Beiträge
 
#1

EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 11:49
Hallo Forum!

Ich habe ein kleines Programm geschrieben, dass nur aus einer Form besteht, dieses Programm rechnet die Theoertische Geschwindigkeit von Propeller getriebenen booten aus.

Es sind also ein paar EDIT Felder vorhanden in denen ich Zahlen eingeben muss, die in Variablen gespeichert werden.

- Drehzahl - , z.B. 4600
- Untersetzung , z.b. 1.75
- Steigung - z.b. 17

daraus errechnet er dann eine theoretische Geschwindigkeit auf Knopfdruck.

Nun möchte ich aber, damit es komfortabler wird, dass der Benutzer diese Inhalte als Datei abspeichern kann und später wieder laden kann um mit den Daten zu rechnen. ( es gibt ja viele verschiedenen Motoren mit verschiedenen drehzahlen , untersetzungen)

Das stelle ich mir so vor, dass ich einen Menüpunkt " abspeichern " in meine Form erstelle und dann soll ein Speichern Dialog erscheinen, wo ich dann in den Ordner springen kann, Dateinamen eingeben kann und schliesslich abspeichere.

Ausserdem möchte ich dann in meinem Menü einen Punkt " daten laden " erstellen, wo dann wieder ein Dialog aufegeht, in dem ich nach meiner abgespeicherten Datei suchen kann und schliesslich lade.

Das ganze habe ich mit Delphi 6 erstellt. Ich bin eher ein Anfänger und wollte mal wissen, ob es ohne Riesenaufwand möglich ist.

Benötige ich dazu andere Komponenten? Ich habe leider keine Ahnung wie ich das realisieren soll.

Über einen Link-Tipp, oder direkte Hilfe würde ich mich sehr freuen!

Gruss
Andi
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#2

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 11:55
Hallo Andi44,

du kannst die Felder in eine Ini Speichern.
Dann sparst du dir auch den Weg über den Auswahldialog und du kannst eigene Profilnamen vergeben.


Delphi-Quellcode:

uses ... IniFiles ...

...


procedure SaveEdits;
var resultIniFilePfad : string;
    resultini : tinifile;
    startpfad : string;
begin
  // Vorgabewerte sichern
  getdir(0, startpfad); // Eigenen Startpfad einlesen
  if (startpfad[length(startpfad)] <> '\')
    then startpfad := startpfad + '\'; // Pfad ggf. korrigieren
  resultIniFilePfad := frm_main.startpfad + '\base.ini'; // Result Default Values
  if (fileexists(resultIniFilePfad) = True) then // Wenn das INI File vorhanden ist ...
    begin
      resultini := tinifile.Create(resultIniFilePfad);
        with resultini do
          begin
            writeString('DefaultValues_1', 'Name', ed_0.text);
            writeString('DefaultValues_1', 'drehzahl', ed_1.text);
            writeString('DefaultValues_1', 'untersetzung', ed_2.text);
            writeString('DefaultValues_1', 'steigung', ed_3.text);
          end;
        resultini.free;
    end;

end;

Gruß Holger.
[edit]code[/edit]
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Andi44

Registriert seit: 24. Jan 2005
12 Beiträge
 
#3

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 12:07
Danke,das geht ja schnell hier! das werde ich einmal versuchen , auszuprobieren, habe ja jetzt viel Lernstoff

Wie ist es denn, werden meine Variablen ( drehzahl, untersetzung, etc ) in eine Datei gespeichert?

Wie lade ich sie denn wieder?

Dankeschön!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 12:18
Zitat von Andi44:
Wie lade ich sie denn wieder?
Im Prinzip genauso, nur andersherum: IniFile erzeugen und dann so etwas:ed_0.text := Ini.ReadString('DefaultValues_1','Name','');
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#5

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 12:20
Die Ini Datei aus meinem Beispiel liegt im Pfad deines Programmes.

Die Werte aus deinen Edits liegen in der Datei.

Das Laden ist auch nicht schwer:

Delphi-Quellcode:
procedure ReloadEdits;
var resultIniFilePfad : string;
    resultini : tinifile;
    startpfad : string;
begin
  // Vorgabewerte sichern
  getdir(0, startpfad); // Eigenen Startpfad einlesen
  if (startpfad[length(startpfad)] <> '\')
    then startpfad := startpfad + '\'; // Pfad ggf. korrigieren
  resultIniFilePfad := frm_main.startpfad + '\base.ini'; // Result Default Values
  if (fileexists(resultIniFilePfad) = True) then // Wenn das INI File vorhanden ist ...
    begin
      resultini := tinifile.Create(resultIniFilePfad);
        with resultini do
          begin
           ed_0.text := readString('DefaultValues_1', 'Name', '');
           ed_1.text := readString('DefaultValues_1', 'drehzahl', '');
           ed_2.text := readString('DefaultValues_1', 'untersetzung', '');
           ed_3.text := readString('DefaultValues_1', 'steigung', '');
          end;
        resultini.free;
    end;
end;
Tipp:
Ich würde die Schlüsselnamen separat ablegen, dann kannst du sie über einen Comobox oder List auswählbar machen.
Das ist komfortabeler wenn du mehrere Profile hast, weil sie ja alle in einer Datei liegen.

Gruß Holger.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Twinsetter

Registriert seit: 30. Dez 2007
9 Beiträge
 
#6

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 12:35
Er sollte noch ein Editfeld vorsehen wo er die Bezeichnung eingeben kann. Für das von Andi44 gezeigte Beispiel wäre das DefaultValues_1.

Der Code würde dann auszugsweise wie folgt aussehen:

Delphi-Quellcode:
begin
  writeString(ed_4.text, 'Name', ed_0.text);
  writeString(ed_4.text, 'drehzahl', ed_1.text);
  writeString(ed_4.text, 'untersetzung', ed_2.text);
  writeString(ed_4.text, 'steigung', ed_3.text);
end;
ed_4.text ist der Bezeichner für das neue Editfeld.

Nicht so gut an dieser Methode ist, daß bei Vergabe eines gleichen Abschnitsbezeichners vorhandene Daten überschrieben werden.
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#7

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 12:39
Aber er kann doch vor dem schreiben prüfen ob der Schlüssel schon existiert ...
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#8

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 12:54
ist dafür nicht seit TP6 das konzept der streams mit der serializierung implementiert worden? Ich erinnere mich dunkel... hatte das bislang noch nie gebraucht. aber das wäre 'n klassischer fall. sollte mit 'n paar tastendrücken erledigt sein...

vielleicht weiss jemand wie das geht und kennt 'n tutorial...
  Mit Zitat antworten Zitat
Andi44

Registriert seit: 24. Jan 2005
12 Beiträge
 
#9

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 13:03
ich weiss nicht, ob ich das richtig verstehe, aber ich wollte für meine Dateien immer verschiedene Dateinamen haben.

Also zum Beispiel so:

untersetzung 2
drehzahl 5500
steigung 20

das ganze speichere ich unter z.B. Andis_Boot.xyz

wenn die EditFelder nun die daten eines anderen Bootes enthalten

utersetzung: 1.75
drehzahl 6000
steigung 24

dann wieder in eine Datei speichern z.B. Werners_Boot.xyz

so dass ich eben mehrere Dateien habe , die ich wieder einlesen kann wenn ich möchte.

einen Öffnen bzw. speichern dialog habe ich mit der vorgenannten methode wohl nicht, oder?
Das wäre für die Bediener schon recht sinnvoll, da viele Benutzer mit verschiedenen Boot/Motor Kombinationen herumtesten um die zu erwartende geschwindigkeit zu haben
So werden schon ein paar Dateien entstehen, denke ich.

gruss
Andi
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: EDIT Inhalte in Datei abspeichern und wieder laden

  Alt 5. Jan 2008, 13:05
Da wären vielleicht typisierte Dateien oder besser eine kleine Datenbank eine Überlegung wert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:46 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