TextFile i TreeView

0

Hej :) Mam problem z wczytaniem pliku textowego do TreeView...;(
Plik tekstowy zapisuje w takiej formie:

test|12|13
tescik|11|15
...itp

i teraz wyrazy (np. test , tescik... -mają być głównym menu -a pierwsze cyferki podmenu)np:

-test
--12

3 cyfr <ort>w ogóle</ort> ine chce używać...

jak to zrobić w TreeViewie??

jestem początkujący w Delphi i próbowałem na różne sposoby a nie wychodzi mi:(

Mógłby ktoś mi zrobić jakiś przykład??

0

kombinowałem tak kombinować, ale nie wiem czy to dobrze i <ort>w ogóle</ort> czy tak to się robi :(:

var
F : TextFile;
S : string;
begin
AssignFile(F, 'kategorie.dat');
try
Reset(F);
while not Eof(F) do
begin
Readln(F,S);
ProductsList.Items.Add(s);

Póki co to nie działa :(
Mógłby ktoś mi pomóc?? przegldałem przykłady na tym forum i helpa....

0

Podobne tematy były wiele razy poruszane..

Najpierw rozdzielasz sobie tekst - popularnie taka procedurka nazywa się Explode - poszukaj .. znajdziesz również wersje rozdzielenia wg indexu, która tu się bardzo przyda.
A do TreeView sobie wstaw po prostu - dodajesz element i AddChild.. wszystko jest w Helpie - to podstawy!

0

wiem że podstawy ;) dopiero się tego ucze a w mojej książce nic o tym nie ma (kompendium programisty)...:( ps. explode to nie czasem w php??

0

Explode nie ma w Delphi, dlatego trzeba je dorobić..

function Explode(Ch: Char; s: string; Index: Byte): string; // Johnny_Bit
type
  TTableString = array of string;

  function InternalExplode(Str: string; Divider: Char): TTableString;
  var
    i, j: Integer;
  begin
    j := 1;
    i := 1;
    while i <= length(str) do
    begin
      if (str[i] = Divider) or (i = length(str)) then
      begin
        if (i = length(str)) and (str[i] <> Divider) then
          Inc(i);
        SetLength(Result, High(Result) + 2);
        Result[High(Result)] := Trim(Copy(str, j, i - j));
        j := i + 1;
      end;
      Inc(i);
    end;
  end;

begin
  Result := InternalExplode(s, ch)[index];
end;

I teraz sobie odczytujesz przez ReadLn, i stosujesz własnie w/w procedurkę.. już chyba sobie poradzisz co?

0

troche chybą jeszcze za głupi jestem w tym , bo za bardzo nie kumam :(

to "kroi" zawartość tablicy na kawałki tak??

0

Dokładnie tak:

Jak masz np:

s := Ala|ma|kota

to:

Explode('|', s, 1): // zwraca Ala
Explode('|', s, 2): // zwraca ma

itd.. - tylko nie pamietam, czy pierwszy składnik jest od 0 czy 1 .. sprawdź...

0

ten kod jest coś popsuty :/ (ta funkcja) bo jak wkleiłem to się czepia do następnej procedury...

0

oo sorry - już poprawiłem.. źle się wkleiło :/

0

o, teraz się kompiluje :)

czyli teraz robie coś takiego żeby wsadzić cały plik do treeviewa:

coś w tym stylu nie:
var
F : TextFile;
S : string;
i : Integer;
begin
AssignFile(F, 'kategorie.dat');
try
Reset(F);
for i :=0 to FileSize(F) -1 do
while not Eof(F) do
begin
Readln(F,S);

end;
finally
CloseFile(F);
end;
end;
end.

0

jejq .. trochę inicjatywy własnej - poczytaj o plikach tekstowych - bo widzę, że robisz nie tak jak trzeba :-/ .. - i nie pytaj o wszystko od razu - pokombinuj trochę no.. :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1