Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi problem mit felddatenspeicherung (https://www.delphipraxis.net/68136-problem-mit-felddatenspeicherung.html)

toredo 25. Apr 2006 10:25


problem mit felddatenspeicherung
 
hay,

ich hab mal versucht eine funktion in ein programm einzubauen, dass die eingaben speichern und öffnen kann.
da ich etwas nicht allzu schweres verwenden will hab ich ich mich für die ini-files entschieden.
natürlich hab ich gleich mal die SuFu gestartet und ich habe auch etwas gefunden unter anderem auch ein link zu nem tut.
dann hab ich mal begonnen. zuerst hab ich die unit für die ini-files reingehauen und dann diesen code geschrieben:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(Application.exename)+Edit1.Text+'.btc');
  ini.free;
  ini.WriteString('Programm:','Edit1.Text',Edit1.Text);
end;
der sollte ja eigentlich so was in die datei schreiben:
Zitat:

[Programm:]
Edit1.Text=Inhalt der Edit1.Text
aber anstatt, dass das programm was reinschreibt kommt ein fehler, wnen das programm ausgeführt wird und dann auf den button geklickt wird. der fehler sollte in der zweitletzten zeile liegen, aber ich find da nix:S



mfG toredo

Klaus01 25. Apr 2006 10:28

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(Application.exename)+Edit1.Text+'.btc');
  ini.free;                   // <-------------
  ini.WriteString('Programm:','Edit1.Text',Edit1.Text);
  ini.free; <-- wenn, dann passt es hier hin.
end;

Du gibst die Instanz ja direkt wieder frei und wenn Du dann in das ini etwas
hineinschreiben willst, gibt es die Instanz nicht mehr.

Grüße
Klaus

toredo 25. Apr 2006 10:33

Re: problem mit felddatenspeicherung
 
hay,

thx, ich dachte das muss ich schon nach dem erstellen der datei machen damit sie freigegeben wird um was reinzuschreiben...
weisst du zufälligerweise auch grade wie ich bei ner ini einen kommentar hinzufügen kann?



mfG toredo

s-off 25. Apr 2006 10:33

Re: problem mit felddatenspeicherung
 
Hallo,

Du zerstörst Ini in der zweiten Zeile und willst dann in der dritten auf etwas, was nicht mehr da ist zugreifen? Das kann nicht funktionieren ;)

Klaus01 25. Apr 2006 10:45

Re: problem mit felddatenspeicherung
 
mit TIniFile kann man meines Wissens keine Kommentare in das iniFile einfügen.

Grüße
Klaus

toredo 25. Apr 2006 10:52

Re: problem mit felddatenspeicherung
 
so, ich bin jetzt wieder ein bissel weitergekommen:
beim lesen hab ich noch ein kleines problem:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
ini: TIniFile;
begin
  try
    form1.left:=ini.ReadString('Programmname:','Edit1.Text',Edit1.Text);
  finally
    ini.free;
end;
end;
eigentlich sollte das doch gehen, aber bei der zeile, bei der der feldinhalt für Edit1.Text gelesen wird funzt irgendwas nicht, was ich auch versteh weil die zeile auch nicht so richrig aussieht, aber ich find dne fehler nicht:s

dann hab ich noch ne frage. ich konnte ja die ini-files bisher nicht lesen aber schreiben, und ich hab da so ein RichEdit-Feld auch in die ini schreiben lassen, da hat der text aber etwa 10zeilen wenn nicht sogar noch mehr. wenn ich das speichere gibts sowas:
Zitat:

[RichEdit]
RichEdit1.Text=sdadsdfgsdfgsd
fdgdsfgdsfgsd fdg sdg fdsg
sdfgdsfgdfsgsdgs sfdgsdfg fdsg gdfsg sd
sdfgsdfgdsfgsdf gdgfdsg sdfg
ggdfsgsdfgsdgf
sdfdsfgsdfgsdfg
...
kann sowas auch wieder eingelesen werden?



mfG toredo

Klaus01 25. Apr 2006 10:56

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
ini: TIniFile;
begin
  try
    ini := TIniFile.create(....); // <----------------
    form1.left:=ini.ReadString('Programmname:','Edit1.Text',Edit1.Text);
  finally
    ini.free;
end;
end;
Hast vergessen, die ini Instanz zu erstellen.

Das mit dem Richedit weiß ich nicht, ob Du das wieder wie gewünscht einlesen kannst.
Musst es halt ausprobieren.

Grüße
Klaus

toredo 25. Apr 2006 11:03

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
ini: TIniFile;
begin
  try
    ini := TIniFile.create(....);
    form1.left:=ini.ReadString('Programmname:','Edit1.Text',Edit1.Text);
  finally
    ini.free;
end;
end;
bei der zeile, bei der die variable gelesen werden sollte, kommt beim kompilieren "incompatible types: integer and string"...
aber eigentlich ist da ja gar kein integer.
und beim auslesen hab cih noch en kleine frage, wieso muss ich wenn ich etwas lesen möchte drei dinge in die klammer schreiben, eigentlich solten zwei doch genügen:
1.um zu dem richtigen klammerteil ([w]) zu gelangen
2.um den variablennamen anzugeben, um bei der richtigen variable den wert zu holen.


mfG toredo

Hawkeye219 25. Apr 2006 11:08

Re: problem mit felddatenspeicherung
 
Hallo toredo,

die Online-Hilfe (Delphi-Referenz durchsuchenTIniFile.ReadString) sollte deine Fragen beantworten. :wink:

Gruß Hawkeye

Klaus01 25. Apr 2006 11:10

Re: problem mit felddatenspeicherung
 
Zitat:

bei der zeile, bei der die variable gelesen werden sollte, kommt beim kompilieren "incompatible types: integer and string"...
aber eigentlich ist da ja gar kein integer.
Du liest den Wert aber als String ein, auch wenn dort nur eine Zahl stehen sollte.
Für Integerwerte gibt es WriteInteger und ReadInteger

Zitat:

und beim auslesen hab cih noch en kleine frage, wieso muss ich wenn ich etwas lesen möchte drei dinge in die klammer schreiben, eigentlich solten zwei doch genügen:
1.um zu dem richtigen klammerteil ([w]) zu gelangen
2.um den variablennamen anzugeben, um bei der richtigen variable den wert zu holen.
Der dritte Wert ist der default Wert falls in der IniDatei unter dem Key nichts steht wird dieser Wert übergeben.

Grüße
Klaus

toredo 25. Apr 2006 11:34

Re: problem mit felddatenspeicherung
 
danke, ich habs jetzt endlich geschafft/verstanden.

danke für die gute und sehr schnelle hilfe



mfG toredo

-edit-
etwas hab cih doch noch nicht geschafft...
ich kann den richedit-text nicht abspeichern.
gibt es da noch en möglichkeit ihn in die gleiche datei zu machen oder muss man ne zweite datei nehmen?


mfG toredo

Klaus01 25. Apr 2006 11:55

Re: problem mit felddatenspeicherung
 
wenn Du den Richedit in ein TStream packen kannst,
solltest Du WriteBinaryStream und ReadBinaryStream verwenden können.

Grüße
Klaus

toredo 25. Apr 2006 16:32

Re: problem mit felddatenspeicherung
 
öhm, und wie kann ich den richedit in einen tstream packen?




mfG toredo

Klaus01 25. Apr 2006 17:59

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
 
ts := TStream.Create;                   // stream Instanz erzeugen
Richedit1.PlainText:=false;             // Textatribute werden mit in den Stream genommen
RichEdit1.Lines.SaveToStream(ts);       // Richedit wird in dem stream gespeichert
// sichere den Stream in der ini Datei
ts.Free;                                // stream Instanz freigeben
wobei ts vom Typ TStream ist

Grüße
Klaus

toredo 25. Apr 2006 18:15

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
     ts := TStream.Create;
  Richedit2.PlainText:=false;
  RichEdit2.Lines.SaveToStream(ts);
  ini.WriteBinaryStream('1Beschreibung:','ts',ts);
ts.free
  ini.free;
hm, es kommt eine fehlermeldung bei der zeile, bei der der code in die ini geschrieben werden sollte...



mfG toredo

Die Muhkuh 25. Apr 2006 18:17

Re: problem mit felddatenspeicherung
 
Zitat:

Zitat von toredo
hm, es kommt eine fehlermeldung bei der zeile, bei der der code in die ini geschrieben werden sollte...

Welche?

toredo 25. Apr 2006 18:25

Re: problem mit felddatenspeicherung
 
wenn ich beim proggi auf den button klicke kommt eine fehlermeldung auf der was von stop oder so steht udn dan springe ich in dem "code"-editor auf die zeile, bei der gespeichert wird udn unten steht das:
Constructing instance of 'TStream' containing sbstract method 'TStream.Read'
Constructing instance of 'TStream' containing sbstract method 'TStream.Write'




mfG toredo

Klaus01 25. Apr 2006 18:27

Re: problem mit felddatenspeicherung
 
Korrektur:

ts sollte TMemoryStream sein,

vor dem Speichern des ts in die IniDatei
ts.position auf 0 setzen.

bei TStream ist die read und write Methode abstract
und muss so weit ich es weiß überschrieben werden.

Grüße
Klaus

toredo 25. Apr 2006 18:36

Re: problem mit felddatenspeicherung
 
ok, das speichern funzt jetzt:)
thx:)
und wie kann ich das ganze wieder öffnen?



mfG toredo

Klaus01 25. Apr 2006 18:41

Re: problem mit felddatenspeicherung
 
Online Hilfe lesen und ReadBinaryStream finden
und bei Richedit loadfromStream.

Grüße
Klaus

toredo 25. Apr 2006 18:55

Re: problem mit felddatenspeicherung
 
welche online-hilfe?



mfG toredo

Klaus01 25. Apr 2006 19:26

Re: problem mit felddatenspeicherung
 
nun, wenn Delphi installiert ist, ist in der Regel auch eine Hilfe dabei.


Grüße
Klaus

toredo 25. Apr 2006 19:45

Re: problem mit felddatenspeicherung
 
ja das schon, nur ich dachte weil du was von ner online-hilfe gesagt hast, dass die hilfe halt online ist und end beim proggi selbst...
und mein delphi is auch englisch und da hab ich nur folgendes rausgekriegt:
Zitat:

Delphi syntax:

function ReadBinaryStream(const Section, Name: string; Value: TStream): Integer; virtual;
dann hab ich das zusammengecodet:
Delphi-Quellcode:
    ts:= TMemoryStream.Create;
        try
    ts:=ini.ReadBinaryStream('Beschreibung:','ts','');
    ts.position:=0;
        finally
      m.Free;
aber es kommt n'fehler bei der zeile in der gelesen werden sollte, da kommt string und stream sind irgendwie nicht kompatibel:S



mfG toredo

Klaus01 25. Apr 2006 20:20

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
ts:= TMemoryStream.Create;
try
  ini.ReadBinaryStream('Beschreibung:','ts',ts);
  ts.position:=0;
finally
  m.Free;
Wie Du in der Hilfe siehst ist ReadBinaryStream vom Syntax etwas anders als
ReadString. Hier wird als dritter Parameter der Stream erwartet und nicht
ein ''.

ReadBinayStream liefert einen Integer zurück, den kannst Du verwerten mußt Du aber nicht.

Grüße
Klaus

toredo 25. Apr 2006 20:25

Re: problem mit felddatenspeicherung
 
thx, das problem ist jetzt gelöst, aber jetzt kommt auf der gleichen zeile, dass tmemorystring udn integer nicht kompatibel sind:S

weiss jemand wo es ein gutes tut über inis gibt, das sich mti dem allem befasst, das könnte ich nämlich gebrauchen:)



mfG toredo

Klaus01 25. Apr 2006 20:32

Re: problem mit felddatenspeicherung
 
Du hast doch nicht etwa noch diese da stehen?
Delphi-Quellcode:
 ts:=ini.ReadBinaryStream('Beschreibung:','ts','');
das kann auch nicht gehen, weil wie oben beschrieben
ini.ReadBinaryStream einen Integer zurückgibt.
TMemoryStream und Integer vertragen sich halt so nicht.

Das sollte eigentlich so aussehen.
Delphi-Quellcode:
ini.ReadBinaryStream('Beschreibung:','ts','');

Grüße
Klaus

toredo 25. Apr 2006 20:38

Re: problem mit felddatenspeicherung
 
ok, das ende naht :-D
Delphi-Quellcode:
    ts:= TMemoryStream.Create;
        try
    ini.ReadBinaryStream('Beschreibung:','ts',ts);
    ts.position:=0;
        finally
        RichEdit2.Text:=ts;
      ts.Free;
      end;
jetzt muss ich nur noch den text von ts zu nem string machen, weil bei der zeile RichEdit2.Text:=ts; kommt sonst ne meldung.

thx, dass ihr mich noch nicht aufgegeben habt :stupid:



mfG toredo

Klaus01 25. Apr 2006 20:41

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
ts:= TMemoryStream.Create;
try
  ini.ReadBinaryStream('Beschreibung:','ts',ts);
  ts.position:=0;
   RichEdit2.lines.loadfromStream(ts);
finally
   ts.Free;
end;
Grüße
Klaus

toredo 25. Apr 2006 20:46

Re: problem mit felddatenspeicherung
 
thx, jetzt funzt alles :thumb:
hab noch en frage die nicht unbedingt beantwortet werden muss, da es nicht so wichtig ist.
kann man auch machen, dass mehr als 1023 zeichen gespeichert werden können?

wie schon gesagt, das ist nicht so wichtig, wäre aber geil:)


thx für die gute hilfe , ohne euch (besonders ohne klaus01) hätte ich das nie geschafft:)



mfG toredo

Klaus01 25. Apr 2006 20:51

Re: problem mit felddatenspeicherung
 
was ist denn auf 1023 Zeichen begrenzt?

TIniFile kann bis auf max 64KByte anwachsen,
wenn es größer gewünscht wird auf TMemIniFile umsteigen.

Grüße
Klaus

toredo 25. Apr 2006 20:53

Re: problem mit felddatenspeicherung
 
Zitat:

: When used with a Windows .ini file, ReadBinaryStream is limited to 1023 characters,
habe ich in der hilfe gefunden:S


mfG toredo

-edit-
ich hab mal was ausprobiert, ich hab nen text gesucht der bestimmt mehr als 1023 zeichen hat und ihn mal gespeichert und wieder geöffnet, das kam heraus:

noch n'info:bei kleinen texten funzt alles perfekt.

originaltext:
Zitat:

U20 World-Cup Finale
[AHP - Deutschland: Latehome-Radio] Latehome-Radio überträgt live das Finale der U20 Weltmeisterschaft ab 19 Uhr.

U20-Österreich - U20-Norwegen

Moderator des Abends wird der peppermill aus der Schweiz sein. Während des Finales wird es ein Gewinnspiel geben. Dabei gibt es 2x 3-Monate Supporterschaften zu gewinnen geben, sowie einen HT-Kalender für 2006, der bekanntlich nicht mehr im Shop erhältlich ist.

Die entsprechenden Fragen für das Gewinnspiel findet ihr in den Länderforen.

Also einschalten lohnt sich. Latehome-Radio - wir machen Hattrick laut.
Geschrieben von: LH-Rolli

Read Between the Lines, Beware of Sharp Edges!!
[AHP - Hattrick: Between the Lines] Issue 111 of the Bottom Division Federation's paper is out:-

The Rules Ch 27
Finding your way at the BDF
Back to Front Defender strikes back.
Hitting the Post
Super Toffees
Malta Happy or Sad?
NOOB Cup ready to roll

Read now before Beckham changes his hairstyle.
Geschrieben von: woolly1

Fantastic trip from VII to I and winning? Read the interview with manager of Ekvilibristerne!
[AHP - Hattrick: Hattrickmania] All about the game!

Hattrickmania.com just have available on-line an interview with the user sensation of the moment in the Hattrick World. Fireball33, manager of Ekvilibristerne (404098), went from VII to I division with a series of consecutive victories, having claimed the title of national champion in Denmark last season! An excellent interview carried through by the NT Coach Portugal - pietr, with the Reportmania signature!

Read it on "Reportmania" section!
Geschrieben von: RoKKy

Read Between The Lines And Eat Hard-Boiled Eggs!!
[AHP - Hattrick: Between the Lines] 110th Issue of the Bottom Division Federation's paper is out:-

What to train in the Offseason.
Mac Compatible Manager programs
Why i miss Daytraders
HT Rules - chp 26 Foss style
Malta's sorrows and pleasure
Galenik does it again
Wybrids

Read now before the wages go up.
Geschrieben von: woolly1

Knalleffekte
[AHP - Deutschland: Latehome-Radio] die 2. Staffel von "be yourself" geht heute mit einem Knalleffekt zu Ende. WEBmta hat mit Boris und Elke 2 ehemalige HT-Manager zu Gast im TS2-Studio, welche in ihrer aktiven Zeit ohne Zweifel sehr bekannt waren. Gibt es ein Leben ohne Hattrick ? - Die Frage wird heute beantwortet werden.

Vorher gibt es den 2. Spieltag der 4. Runde im U20-World-Cup sowie den vorletzten Spieltag der WM-Qualifikation der A-Mannschaften.

Am Wochenende berichten wir dann von den Relegationsspielen aus Deutschland/Schweiz/Liechtenstein (Sa. 17:30 Uhr), Österreich (So. 9:00 Uhr) und Luxemburg (So. 14:00 Uhr)

Am Ostermontag wird natürlich die Entscheidung im U20-World-Cup, wer dort ins Halbfinale kommt live übertragen.

Dienstag ist dann Battle-Time. Wir berichten von verschiedenen Battles. Wer sein Battle im Radio hören will, der melde sich bitte beim zuständigen Moderator im IRC und flüstere ihm dort die Spielstände ins Query.
Geschrieben von: LH-Rolli
text nach dem öffnen:
Zitat:

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\lang2055\f0\fs16 U20 World-Cup Finale
\par [AHP - Deutschland: Latehome-Radio] Latehome-Radio \'fcbertr\'e4gt live das Finale der U20 Weltmeisterschaft ab 19 Uhr.
\par
\par U20-\'d6sterreich - U20-Norwegen
\par
\par Moderator des Abends wird der peppermill aus der Schweiz sein. W\'e4hrend des Finales wird es ein Gewinnspiel geben. Dabei gibt es 2x 3-Monate Supporterschaften zu gewinnen geben, sowie einen HT-Kalender f\'fcr 2006, der bekanntlich nicht mehr im Shop erh\'e4ltlich ist.
\par
\par Die entsprechenden Fragen f\'fcr das Gewinnspiel findet ihr in den L\'e4nderforen.
\par
\par Also einschalten lohnt sich. Latehome-Radio - wir machen Hattrick laut.
\par Geschrieben von: LH-Rolli
\par
\par Read Between the Lines, Beware of Sharp Edges!!
\par [AHP - Hattrick: Between the Lines] Issue 111 of the Bottom Division Federation's paper is out:-
\par
\par The Rules Ch 27
\par Finding your way at the BDF

mfG toredo

Klaus01 25. Apr 2006 21:01

Re: problem mit felddatenspeicherung
 
nun, bei mir in der Hilfe (delphi 6) steht die Einschränkung nicht.
Kannst ja mal bei WriteBinaryStream im TMemIniFile schauen ob es da
auch die Einschränkung gibt.

- und was versteht die Hilfe unter windows ini file?
- oder ist die Hilfe auch für Kylix gedacht gewesen?

RichEdit2.plainText:= false;
dann werden auch die Formatanweisungen richtig interpretiert.

Grüße
Klaus

toredo 25. Apr 2006 21:09

Re: problem mit felddatenspeicherung
 
in der hilfe bei WriteBinaryStream steht nichts von 1023 zeichen...

RichEdit2.plainText:= false;
hab ich drin, der text steht aber trozdem so komishc da wenns zu viele zeichen sind.

hm, dne definition fürn windows ini file ist wahrscheinlich end so einfach aber ich glaub ich weiss wieso es ned funzt, wenn amn mehr als 1023 zeichen benuzen will:
wenn man im editor a hinschreibt das kopiert und wieder einfügt dass es aa gibt udn dass wieder kopiert zu aaaa dund immer so weitermacht dann kommt man auf einmal auf eine neue zeile. und da könnte es probleme geben, weil eine zeile wahrscheinlich nur 1023zeichen lange ist...



mfG toredo

Klaus01 25. Apr 2006 21:13

Re: problem mit felddatenspeicherung
 
das liegt an der Windows API die läßt nur 1023 Zeichen pro Zeile zu.
siehe hier -> http://groups.google.de/group/borlan...c5ac819bc37e40

daraus folgt:
-> den text in mehreren keys speichern - umständlich
-> den Text in ein seperates File speichern und den Dateinamen in der ini hinterlegen
- schaut für mich sinnvoller aus

Grüße
Klaus

toredo 26. Apr 2006 10:26

Re: problem mit felddatenspeicherung
 
Zitat:

Zitat von Klaus01
daraus folgt:
-> den text in mehreren keys speichern - umständlich
-> den Text in ein seperates File speichern und den Dateinamen in der ini hinterlegen
- schaut für mich sinnvoller aus

das zweite klingt schon sinnvoller, aber da es ja ein save-file geben sollte waäre es schon besser, wenn gleich alles im selben file liegt, könnte man das irgendwie so lösen, dass z.b. diese zwei dateien in einem save-file gelagert werden?
wenn das zu kompliziert ist, dann wäre es acuh schon ok, wenn es zwei files gibt, ist ja auch ned so schlimm.

:? sry wegen gestern abend, meine eltern haben mir "befohlen" ins bett zu gehn, weil ich ja am nächsten tag bzw. heute ne prüfung habe...




mfG toredo

Klaus01 26. Apr 2006 10:36

Re: problem mit felddatenspeicherung
 
ja, dann viel Glück bei der Prüfung.

zwei Files in einem Speichern geht schon, ist aber umständlich.
Du mußt sie halt mit append zusammenführen, mußt sie aber auch bevor Du die
ini lesen kannst wieder auseinanderfriemeln.

save to file, ist doch eine Möglichkeit.
Da kannst Du den Name der ini erfragen und mit dem gleichen
Namen kannst Du ja auch das rtf File abspeichern (richedit.lines.savetofile()), nur halt mit
einer anderen Extension test.ini und test.rtf .

Grüße
Klaus

toredo 26. Apr 2006 10:39

Re: problem mit felddatenspeicherung
 
ok, dann mache ich das mit den zwei dateien.
Zitat:

-> den Text in ein seperates File speichern und den Dateinamen in der ini hinterlegen
kannst du mir bitte sagen wie das geht, klingt am einfachsten von allem:)



mfG toredo

Klaus01 26. Apr 2006 10:53

Re: problem mit felddatenspeicherung
 
Du machst Dir in der IniDatei
- eine Section z.B. RTF-File
- einen Key z.B. Path
mit dem value des Pfades wo die Datei abgelegt ist, oder abgelegt werden soll
- eine key z.B. FileName
mit dem value des Dateinamens

das kannst Du mit WriteString und ReadString machen

Das RicheEdit Feld kannst Du dann mit richedit1.lines.savetofile(<DeinPfad+Dateiname>) abspeichern
Mit richedit.lines.loadfromfile((<DeinPfad+Dateiname>) kannst Du es wieder einlesen.

Grüße
Klaus

toredo 26. Apr 2006 11:09

Re: problem mit felddatenspeicherung
 
also sollte der abshcnitt der ini etwa so aussehen:
Code:
[RTF-File]
Path=texst.rtf
da die rtf ja im selben ordner wie die ini liegen sollte kann ich doch einfach den dateinamen eingben?

wäre es dann aber nicht noch einfach wenn ich dne text aus der richedit einfachn in einer datei speichern lasse und wenn der open-dialog erscheint einfach die ini ausgesucht werden kann und dass dann einfach auch noch nach der .rtf datei gesucht wird, also so in etwa meine stelle ich mri das vor:

speichern:
1.pfad wird ausgewählt
2.beide dateien werden gesprichert, in der einen alles ausser das richedit-feld udn in der zweiten einfach das rich-edit-zeugs.

öffnen:
1.pfad wird ausgewählt
2.man wählt die ini aus und dann wird automatisch nahc der rtf gesucht udn diese dann halt auch geladen.

dabei gäbe es aber zwei probs für mich:
1.das ist bestimmt einfach zu lösen. ich möchte dass wenn das proggi .ini gelesen hat, die .rtf datei ladet, dafür muss ich aber den dateinamen ohne die endung abschneiden können, was ich aber nicht kann.


[erledigt]2.ich weiss nicht wie man den inhalt einer txt bzw rtf-datei in den richedit kriegt.




mfG toredo

Klaus01 26. Apr 2006 11:54

Re: problem mit felddatenspeicherung
 
wenn Du die IniDatei mit dem OpenDialog geladen hast
kannst Du auf die Variable FileName des OpenDialogs zurückgreifen
Diese liefert Dir den Name der ausgesuchten Datei.

z.B. einBeispiel.ini

dann kannst Du die Funktion ChangeFileExt ausführen
um damit die Extension der iniDatei mit der Extension der rtfDatei
zu tauschen. Die Funktion ChangeFileExt findest Du in der SysUtils Unit, diese
mußt Du dann unter uses einbinden.

rtfFileName:=changeFileExt('einBeispiel.ini','.rtf')

dann kannst Du mit RichEdit.lines.loadFromFile(rtfFileName) die Datei laden.
(wurde weiter oben aber schon mal erwähnt)

Grüße
Klaus

[edit] rtf durch .rtf getauscht [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz