AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

document laden

Ein Thema von NoobBoob · begonnen am 5. Jan 2007 · letzter Beitrag vom 6. Jan 2007
Antwort Antwort
NoobBoob

Registriert seit: 5. Jan 2007
19 Beiträge
 
Delphi 7 Personal
 
#1

document laden

  Alt 5. Jan 2007, 21:40
hi leute ,
weiß einer vielleicht , wie ich ein document laden kann (textdocument) wo z.b. drinne steht:

aaaa:dddd
gggg:ssss
rrrr:vvvv


der soll das dann in 2 arrays speichern

das vor dem doppelpunkt in der einen das nach dem doppelpunkt in anderem array

z.b.
aaaa:dddd aaaa im array wort1 an stelle 1 : wort1[1] , und dddd in der array wort2 und auch stelle 1 : wort2[1]
gggg:ssss gggg dann : wort1[2] und ssss dann : wort2[2] weiß das jemand?

bitte um schnelle hilfe


Mfg NoobBoob
Bekomme es nicht hin . . .
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: document laden

  Alt 5. Jan 2007, 21:46
Schau dir mal den Befehl pos an, mit seiner Hilfe kannst du nach zeichen oder Zeichenketten suchen.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
NoobBoob

Registriert seit: 5. Jan 2007
19 Beiträge
 
Delphi 7 Personal
 
#3

Re: document laden

  Alt 5. Jan 2007, 21:50
was bringt das? ^^
also wie soll das mir weiterhelfen?
Bekomme es nicht hin . . .
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: document laden

  Alt 5. Jan 2007, 21:54
Du suchst in jeder Zeile nach deinem Doppelpunkt, pos gibt dir dann die Position des Doppelpunktes zurück. Alles was vor dieser Position ist, packst du ins erste Array, den Teil danach in dein 2. Array.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
NoobBoob

Registriert seit: 5. Jan 2007
19 Beiträge
 
Delphi 7 Personal
 
#5

Re: document laden

  Alt 5. Jan 2007, 21:55
ja aber wie geht das?
Bekomme es nicht hin . . .
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#6

Re: document laden

  Alt 5. Jan 2007, 22:40
so vllt...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   f: TextFile;
   temp: string;
   n: Integer;
   s1, s2: array of string;
begin
n := 1;
setLength(s1, 1);
setLength(s2, 1);

AssignFile(f, 'C:\Test.txt');
Reset(f);
while not EOF(F) do
  begin
    ReadLN(f, temp);
    setLength(s1, length(s1)+1);
    setLength(s2, length(s2)+1);
    s1[n] := copy(temp, 1, Pos(':', temp)-1);
    s2[n] := copy(temp, Pos(':', temp)+1, length(temp)-Pos(':', temp));
    inc(n);
  end;
CloseFile(f);
end;
Dominik
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: document laden

  Alt 6. Jan 2007, 10:07
Guten Morgen,

und noch eine Variante:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  liste: TStringList;
  liste2: TStringList;
  Array1: array [0..5] of String;
  Array2: array [0..5] of string;
  i,j:Byte;
begin
   liste := TStringList.create;
   liste2 := TStringlist.create;
   liste2.Delimiter:=':';
   liste.LoadFromFile('d:\test.dat'); //enthält den ganzen Text
   liste2.DelimitedText:=liste.Text; // enthält pro Zeile einen Teil des Textes
  
   // den Teil kann man sicherlich noch eleganter lösen
   i:=0;
   j:=0;
   while i <= liste2.Count-1 do
     begin
       Array1[j]:=liste2.strings[i];
       Array2[j]:= liste2.strings[i+1];
       j:=j+1;
       i:=i+2;
     end;

   // Ausgabe in ein Memo
   for i:=0 to high(array1) do
     memo1.Lines.add(array1[i]);

   liste.Free;
   liste2.Free;
end;
einen Nachteil hat das Verfahren, in den Texten dürfen keine Leerzeichen enthalten sein.
aaaaa:bbbbb das geht
aa aa:bbbbb das geht in die Hose
Leerzeichen sind in dem Falle durch ein anderes Zeichen zu ersetzen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: document laden

  Alt 6. Jan 2007, 13:25
Hallo,

ich hätte auch noch eine Alternative: Statt Delimiter die Eigenschaft NameValueSeparator strapazieren. Dann kann man auf die einzelnen Werte so zugreifen, als ob sie in zwei Arrays gespeichert wären. Sie sind aber nur in einer StringList gespeichert:

Delphi-Quellcode:
procedure LoadNamedValues(s: TStrings; fn: TFileName);
var
  i: Integer;
begin
  s.LoadFromFile(fn);
  s.NameValueSeparator := ':';
  for i := 0 to Pred(s.Count) do
    ShowMessage(Format('%d: %s <-> %s', [s.Names[i], s.ValueFromIndex[i]]));
end;
Grüße vom marabu
  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 06:21 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