AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Warum wird das Memo nicht komplett aus der INI geladen?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum wird das Memo nicht komplett aus der INI geladen?

Ein Thema von Dragon27 · begonnen am 8. Jul 2004 · letzter Beitrag vom 8. Jul 2004
Antwort Antwort
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 10:49
Hall zusammen,

ich habe heute folgenden Code geschrieben:


Code:
memo1.Lines[0]:=ini.ReadString('Data','Adresszeile0','');
memo1.Lines[1]:=ini.ReadString('Data','Adresszeile1','');
memo1.Lines[2]:=ini.ReadString('Data','Adresszeile2','');
memo1.Lines[3]:=ini.ReadString('Data','Adresszeile3','');
memo1.Lines[4]:=ini.ReadString('Data','Adresszeile4','');
memo1.Lines[5]:=ini.ReadString('Data','Adresszeile5','');
memo1.Lines[6]:=ini.ReadString('Data','Adresszeile6','');
memo1.Lines[7]:=ini.ReadString('Data','Adresszeile7','');
memo1.Lines[8]:=ini.ReadString('Data','Adresszeile8','');
memo1.Lines[9]:=ini.ReadString('Data','Adresszeile9','');
Doch irgendwie liest er nur die erste Zeile aus!
Die Saveroutine sieht so aus:

Code:

ini.WriteString('Data','Adresszeile0',memo1.Lines[0]);
ini.WriteString('Data','Adresszeile1',memo1.Lines[1]);
ini.WriteString('Data','Adresszeile2',memo1.Lines[2]);
ini.WriteString('Data','Adresszeile3',memo1.Lines[3]);
ini.WriteString('Data','Adresszeile4',memo1.Lines[4]);
ini.WriteString('Data','Adresszeile5',memo1.Lines[5]);
ini.WriteString('Data','Adresszeile6',memo1.Lines[6]);
ini.WriteString('Data','Adresszeile7',memo1.Lines[7]);
ini.WriteString('Data','Adresszeile8',memo1.Lines[8]);
ini.WriteString('Data','Adresszeile9',memo1.Lines[9]);
Warum funktioniert das nicht?
Habe ich nen Fehler gemacht?

Danke
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 10:53
Die Zeilen gibt es vermutlich noch nicht, daher kannst du auf sie nicht so einfach zu greifen. VErsuch es mal Memo1.Lines.Add('test');
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 10:53
Mach mal folgendes:
Delphi-Quellcode:
memo1.lines.add(ini.ReadString('Data','Adresszeile0',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile1',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile2',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile3',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile4',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile5',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile6',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile7',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile8',''));
memo1.lines.add(ini.ReadString('Data','Adresszeile9',''));
Das Problem ist, dass es die Zeilen noch garnicht gibt, die du setzen willst!

[edit]Schon wieder einer mit nem Speed-Hack!!! [/edit]
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 10:55
Hallo,

Danke für die Antworten . Währe da jetzt echt nicht draufgekommen *schäm*

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 10:56
PS: Das schreit ja schon nach ner Schleife

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 11:02
Hi,

Eine frisch initialisierte Memo-Komponente hat nur ein Element in TMemo.Lines. Daher:

Delphi-Quellcode:
memo1.Lines.Clear;
memo1.Lines.add( ini.ReadString('Data','Adresszeile0',''));
{...}
Noch besser:
Delphi-Quellcode:
memo1.Lines.Clear;
for i:=0 to 9 do
 memo1.Lines.add( ini.ReadString('Data','Adresszeile'+IntToStr(i),''));
Einfacher:
Delphi-Quellcode:
Memo1.Lines.SaveToFile('C:\Adressdaten.txt');
Memo1.Lines.LoadFromFile('C:\Adressdaten.txt');
{Achtung: beides in try...except Blöcke setzen, da eine Exception auftreten kann, wenn die Datei beim Schreibzugriff bereits verwendet wird oder beim Lesezugriff nicht existiert}
Gruß,
Dani

Edit: Bin zuuu langsaaaam
Dani H.
  Mit Zitat antworten Zitat
Delphi_Fanatic

Registriert seit: 24. Mär 2004
201 Beiträge
 
#7

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 11:10
Warum liest Du Deine Zeilen nicht einfach so ein :

Code:
ini.ReadSection ('Data',memo1.Lines);
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#8

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 11:29
hallo dani,

sicherlich währe das Lodfromfile und savetofile einfacher aber es muss ja eine Datei sein

meine ganze Routine sieht ja so aus:
Delphi-Quellcode:

procedure Tform7.loadrechnung(filename:String);
var x, y, i:Integer;
begin
ini:=Tinifile.Create(filename);
memo1.clear;
memo2.Clear;
edit1.text:=ini.ReadString('Data','Rechnungsnummer','');
datetimepicker1.date:=strtodate(ini.ReadString('Data','Rechnungsdatum',datetostr(now)));
edit2.Text:=ini.ReadString('Data','Auftragsnummer','');
memo1.Lines.Add(ini.ReadString('Data','Adresszeile0',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile1',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile2',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile3',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile4',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile5',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile6',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile7',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile8',''));
memo1.Lines.Add(ini.ReadString('Data','Adresszeile9',''));
memo2.Lines.Add(ini.ReadString('Data','Text1',''));
memo2.Lines.Add(ini.ReadString('Data','Text2',''));
memo2.Lines.Add(ini.ReadString('Data','Text3',''));
memo2.Lines.Add(ini.ReadString('Data','Text4',''));
memo2.Lines.Add(ini.ReadString('Data','Text5',''));
memo2.Lines.Add(ini.ReadString('Data','Text6',''));
memo2.Lines.Add(ini.ReadString('Data','Text7',''));
memo2.Lines.Add(ini.ReadString('Data','Text8',''));
x:=0;
Repeat
x:=x+1;
Y:=-1;
repeat
y:=y+1;
stringgrid1.Cells[x,y]:=ini.ReadString('Rechnung',inttostr(x)+'_'+inttostr(y),'');
until
Y>=21;
until
x>=5;
end;



procedure Tform7.saverechnung(filename, Rechnungsname:String);
var x, y, i:Integer;
begin
ini:=Tinifile.Create(filename+Rechnungsname+'.MFR');
ini.WriteString('Data','Rechnungsnummer',edit1.Text);
ini.WriteString('Data','Rechnungsdatum',datetostr(Datetimepicker1.Date));
ini.WriteString('Data','Auftragsnummer',edit2.Text);
ini.WriteString('Data','Adresszeile0',memo1.Lines[0]);
ini.WriteString('Data','Adresszeile1',memo1.Lines[1]);
ini.WriteString('Data','Adresszeile2',memo1.Lines[2]);
ini.WriteString('Data','Adresszeile3',memo1.Lines[3]);
ini.WriteString('Data','Adresszeile4',memo1.Lines[4]);
ini.WriteString('Data','Adresszeile5',memo1.Lines[5]);
ini.WriteString('Data','Adresszeile6',memo1.Lines[6]);
ini.WriteString('Data','Adresszeile7',memo1.Lines[7]);
ini.WriteString('Data','Adresszeile8',memo1.Lines[8]);
ini.WriteString('Data','Adresszeile9',memo1.Lines[9]);
ini.WriteString('Data','Text1',memo2.Lines[0]);
ini.WriteString('Data','Text2',memo2.Lines[1]);
ini.WriteString('Data','Text3',memo2.Lines[2]);
ini.WriteString('Data','Text4',memo2.Lines[3]);
ini.WriteString('Data','Text5',memo2.Lines[4]);
ini.WriteString('Data','Text6',memo2.Lines[5]);
ini.WriteString('Data','Text7',memo2.Lines[6]);
ini.WriteString('Data','Text8',memo2.Lines[7]);
x:=0;
Repeat
x:=x+1;
Y:=-1;
repeat
y:=y+1;
ini.WriteString('Rechnung',inttostr(x)+'_'+inttostr(y),stringgrid1.Cells[x,y]);
until
Y>=21;
until
x>=5;
end;
Also praktisch jede Rechnung in EINE Datei

Gruß

Andy
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#9

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 11:33
Hallo Delphi_fanatic,

was macht readsection genau?

Würde das dann nicht auch die Sachen von Memo2 miteinlesen?

Danke
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: Warum wird das Memo nicht komplett aus der INI geladen?

  Alt 8. Jul 2004, 11:38
ReadSection liest alle Werte, die in diesem Bereich stehen.
Aber um Abhilfe zu schaffen, kannst du's doch in unterschiedliche Bereiche schreiben...
Delphi-Quellcode:
ini.WriteSection('Adresse',memo1.Lines);
ini.WriteSection('Text',memo1.Lines);
Edit: Mist, das war ne Funktion, die ich mir mal selber geschrieben habe...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:45 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