Autor Beitrag
Shoppix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 25.03.05 00:01 
Hallo,

ich hab mal wieder ne Frage...ich habe eine TXT datei die ich jetzt teilweise in Labels und teilweise in ein Memo oder RichEdit (unterschied ist mir nicht klar) einlesen möchte...Wie geht das?

Ein weiters Problem ist, dass ich jeweils eine Zeile aus dem TXT einem der Labels bzw. Memo/richedit "zuweisen" möchte ... ich blick da nicht durch...

biddebidde helft mir....

ich danke im Voraus;)
Shoppix
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 25.03.05 00:18 
Hallo,

also:
Mit einem Memo kannst Du nur reinen Text darstellen, das Richedit kann formatierten Text anzeigen.

Ich glaube es wäre gut, wenn Du Dir mal dieses durchliest:
Grundlagen
und
Einsteiger-Tutorials

MfG Lannes
Shoppix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 25.03.05 00:36 
Titel: ...Danke...
naja wenn sie denken ich würde einfach mal was postne bevor ich zumindest bei der Delphie hilfe gesucht habe .. entteuscht mich sehr.... natürlich habe ich mich schon durch die online literatur durch zu pauken ... wei gesagt das reihne einlesen ist nicht so dass problem sondern in verbindung damit das ich eine bestimmte zeile aus der text datei in dieses memo/richedit schrieben(einlese) ...

ich wäre dankbar wenn mir jemand helfen würde ..
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 25.03.05 01:06 
Hallo,

wo hast Du denn die Zeilen eingelesen?
Ich nehme mal an das Du die TXT-Datei in ein Memo eingelesen hast.
Mit folgendem Code kannst Du z.B. die erste Zeile des Memos in ein Label zu setzen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := Memo1.Lines[0];//0 ist die erste Zeile
end;
Shoppix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 25.03.05 11:47 
Titel: Frage falsch verstanden
Ich glaub ihr habt meine Frage falsch verstandern ich mach mal nen Beispiel, dann könnt ihr euch besser vorstellen:

Also ich habe eine TXT-Datei in der steht:

xyz, zyx |Also nach jeder Zeile 2leerschläge..(für das Einlesen)
Straße
PLZ
.
.
.
Notiz, (die kann auch mehere Zeilen gehen)


so das gewohnliche einlesen ist auch kein Prob mehr ( mit For i:=0 to 15 do )...
dann sucht er im formular nach Tlabel und schriebt das der Reihe nach ein...

Wie ihr verstanden habt handelt es sich um ein Adressbuch: - Jetzt will ich die Notitz-Zeile aber nicht in ein Tlabel schriben sondern in ein Richedit oder Memo...(damit ich den Text ändern kann und wieder Speichern ) -- Also eine Kontakt ändern Funktion...

bidde um Antwort...
Shoppix
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 25.03.05 13:57 
Hallo,

z.B. so:
ausblenden Delphi-Quelltext
1:
2:
if Notzzeile then
  Memo1.Lines.add('Zeilentext');

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Shoppix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 25.03.05 15:42 
Titel: Big Frage
Wie soll den das funktionieren???
Ich muss doch erst die Datei einlesen z.B mit S.loadfromfile(''); dann mit einer schleife durchsuchen bzw ich weiß welche zeile es ist aber nicht wo sie endet.. und diese muss ich in ein memofeld einlesen (evt. einen string zuweisen und dann schrieben memo1.lines.add(string).... so die zeilen davor aber in Labels schreiben das habe ich bis jetzt mit

for i:=0 to 15 do // für 15 die Anzahl der Edits nehmen
ausblenden Delphi-Quelltext
1:
     (FindComponent('label' + IntToStr(i)) as Tlabel).caption := s[i];					


gemacht..

HILFE!

Moderiert von user profile iconAXMD: Delphi-Tags hinzugefügt.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 25.03.05 16:40 
Titel: Re: Big Frage
Hallo,
user profile iconShoppix hat folgendes geschrieben:

Ich muss doch erst die Datei einlesen z.B mit S.loadfromfile('');
Damit hast Du kein Problem (siehe vorigen Post), gut :?
Ist "S" eine TStringList?

user profile iconShoppix hat folgendes geschrieben:
dann mit einer schleife durchsuchen bzw ich weiß welche zeile es ist aber nicht wo sie endet..
Ist "... aber nicht wo sie endet.. " dein Problem?
Hast Du in einer TXT-Datei nur eine Adresse oder mehrerer?

user profile iconShoppix hat folgendes geschrieben:
for i:=0 to 15 do // für 15 die Anzahl der Edits nehmen
Mit 0 bis 15 fragst Du aber 16 Zeilen ab, da 0 die erste Zeile ist.

Um Dir besser helfen zu können sind mehr Informationen erforderlich. :)

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Shoppix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 25.03.05 18:37 
Titel: Mein Projekt im Detail
Hallo,

Wie gesagt ich schreibe ein Adressbuch:
Zuerst habe ich viele Edits erstellt in die ich meine Infos eintrage (das ist adresse, Geburtstag...) so auf ButtenClick speicher er 2 Dateien einmal alle infos aus den Edits untereinander in eine Txt-datei dabei lasse ich die erste zeile in der Txt-datei frei und Benutze für das Ende einer zeile zwei Leerschläge (weil wenn ich ein ; nehme schreibt er das beim einlesen wieder hin--> die Leerschläge sieht man nicht) so in die zweite txt datei schriebt er nur den ->Vornamen, Nachname[ ]<-, bei jedem neuen eintrag öffnet er diese schriebt den neuen Vornamen, Nachnacmen hinein und speicher das. Diese Datei benutze ich indem ich sie in ein combobox schreibe und bei auswahl lasse ich in dem ordenr nach der datei suchen (combobox.caption:='')...das Funktioniert da in der einen Datei nur die Namen und Vornamen stehen die es auch als Datei mir zusatz informationen gibt..;) so jetzt will ich also eine Funktion einbauen die es ermöglicht einen bereits gespeicherten Eintrag zu laden und zu verändern....Das ist im Grundegenommen mein prob**...

Das wollte ich dadurch lösen das er mir die information aus dem TXT mit zusatz information in edits läd damit mann sie verändern kann .. auf einen erneuten ButtenClick soll er dann die älte datei löschen und die neue speichern (das dürfte kein Prob sein weil ich das ja schon kann ...:)... Und aus der TXT datei in der nur die namen und vornamen stehen kenne ich eine funktion die lautet: suche nach XY und ersätze durch_____... das wird also auch kein prob** darstellen ...

aber mein Problem ist es ja die Datei mit zusatz in verschiedene "objekte" (edit / Memo ) zu laden

hier mal ein beispeil einer Datei mit Zusatz:
//ist einfach leer
Karlo
Christoph
-
Karlo, Christoph
Einsteinstr 4
47897
Remscheid
De
-
chris@msn.com
02191-12345678
-
-
-
Her mit dem Spaß!!! Wir fahren nach Bulgarien...

die ersten 15 zeilen (mir //ist leer) sollen in Labels udn die letzte zeile in ein Memo


so ich hoff das sind genug Infos;)

shoppix
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 25.03.05 21:36 
Hallo,

ich gehe jetzt mal davon aus, das du die Daten in eine StringList geladen hast
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
var
 S : TStringList;
 i : Integer;
begin
 S := TStringList.Create;//StringListe erzeugen
 try
  S.LoadFromFile('C:\Temp\Name.TXT');//Daten in Stringliste laden
  //jetzt kommt dein Code zum beschreiben der Labels
  //die erste Zeile der Daten hat den Index 0, die fünfzehnte folglich den Index 14
  for i := 0 to 14 do
    begin
    (FindComponent('label' + IntToStr(i)) as Tlabel).caption := s[i];
    end;
  //die restlichen Zeilen sind folglich Notizen
  //also beginnen mit der ersten Notizzeile
  //solange bis letzte Zeile erreicht ist
  for i := 15 to S.Count-1 do//Count-1 weil Count immer eins größer als Index ist
    begin
    Memo1.Lines.Add(S[i]);
    end;
 finally
 S.Free;//StringListe wieder freigeben
 end;
end;


Erklärung Index <> Count
ausblenden Quelltext
1:
2:
3:
4:
Index | Count
  0       1
  1       2
  2       3

Nimmt man nun einen Schleifenzähler(in deinem Fall i) um auf den Index zuzugreifen,
so ist die letzte Zeile der Beispieldaten Count-1 = 2

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Shoppix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Sa 26.03.05 03:02 
Titel: aha
Hallo,
ich glaub ich habs verstanden ... ;) ... froi jetzt kann ich entlich weiter schrieben ...

Ich danke insbesondere dem Lannes, dafür das er sich so große Mühe mit mir und meinem Prob gemacht hat

:lol: DANKE :lol: