Ście?żki, stringi i tabulatory :-)

0

Witam pytanie jest troche pogmatwane ale ci ktorzy znają sie na stringach to mi mam nadzieje pomogą.
Mam zapisane w memo/lub pliku textowym ścieżki katalogow wyglada to mniej wiecej tak
G:\
G:\windows\
G:\windows\bleble\
po odpowiednim sformatowaniu ma tak

  1. usuwac powtarzające sie scieżki * to zrobiłem :-)
  2. usuwać litery dusków jeżeli jest bez zadnych podkatalogów * to tesh zrobiłem:-))
  3. ma usuwać litery dyskow zostawiając jedną np
    G:\
    G:\
    G:\windows\
    G:\windows\bleble\
    robi na
    G
    \windows\
    \windows\bleble\
  • to tesh zrobiłem :-)))
    ale ma jeszcze jedną żecz robić dodawac Tabulatory i usuwać slesze i tego nie potrafie niestety
    jak mam np.
    G:\
    G:\
    G:\windows\
    G:\windows\bleble\
    to ma mi zrobic
    G
    [tabulator]windows
    [tabulator][tabulator]bleble i tak [tabulator] +1 im wiecej podkatalogów
    teraz podam kodzik niektore zminne są na razie nie używane ...
    *-------------------------------------- Moj kodzik ----------------------------------
    var
    AA,s,d,a,b,c,T,Q,W:string;
    l,k,j,n,E,I:integer;
    begin
    W:=; s:=;
    *----- kasowanie powtarzajacych sie sciezek------------------------------------
    for i:=0 to memo1.Lines.Count -1 do begin
    Q:=Memo1.Lines.Strings[i];
    a:=Memo1.Lines.Strings[i+1];
    if Q = a then begin
    Delete(a,1,Length(a));
    end else begin
    *----- koniec kasowania -------------------------------------------------------
    if Pos(Q[1],W) = 0 then begin
    W:=W + Q[1];
    if Length(Q) = 3 then begin
    Delete(Q,1,4);
    end;
    c:=copy(Q,1,1);
    d:=copy(Q,3,Length(Q));
    if c &lt&gt then Memo2.Lines.Add(c); if d &lt&gt then begin
  • tu powinno byc dodawanie tabulatorów &gt&gt
    Repeat
    k:=Pos('\',d);
    Delete(d,1,1);
    n:=Pos('\',d);
    AA:=Copy(d,k,n);
    Memo2.Lines.Add(s+AA);
    s:=s + #9;
  • ash dotąd &lt&lt
    until n = 0;
    end;
    end
    else begin
  • i tu też powinno byc dodawanie tabulatorów &gt&gt
    Delete(Q,1,2);
    if Q &lt&gt'' then
    Memo2.Lines.Add(Q);
  • aż dotąd &lt&lt
    end;
    end;
    end;
    end;---= pozdrawiam Oskar =- (delphi 6 GG:2792614)
0

For I:=0 To Length(Text) do If Text[I]='\' Then Text:=Copy(Text,1,I-1) #9 Copy(Text,I 1,Length(Text)-I 1);
--Szymek

Prawo Bolingsa - jeżeli czujesz się świetnie, nie martw się, to minie.

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