Ĺadny brzuch
Witam mam pytanie czy da się i jak zapisać zawartość ciągu na początek pliku nie kasując poprzedniej zawartości.
Plik tekstowy ??
Tak. Zwykły plik tekstowy. Np:
AssignFile(reopen,ExtractFilePath(ParamStr(0))+'config\reopens.prp') ; Append(reopen); i teraz jak dopisać zawartość na początek pliku.
Ja bym to zrobił przy pomocy TStringList.
str: TStringlist; str := TStringlist.Create; Str.LoadFormFile('123.txt'); Str.Text := 'dodany' + Str.Text; Str.SaveToFile('123.txt'); Str.Free;
Z palca pisalem ale powinno działać.
No dobra to moze da się jakoś odczytać plik od końca ?. I drugie pytanie.
Otóż mam plik w takiej postaci:
C:/dokument.txt
D:/dokument.txt
każda ścieżka jest zapisana w nowej linijce. I teraz pytanie jak odczytać każdą ścieżkę i przypisać każdą ścieżkę do Tstringa ?. Czyli np.
zmienna := Tstrings.Create();
zmienna [0] := pierwsza sciezka itp.
Ale o co chodzi z plikami ?? Mają się z pliku pobrać ścieżki do plików i do każdego pliku coś dopisać z przodu ??
Nie chodzi mi o to aby wczytać plik i aby każda linijka z pliku ze ścieżkami była zapisana do kolejno TStringList[0], TStringList[1], TStringList[2], TStringList[3], TStringList[4] itd.
Nie chodzi mi o to aby wczytać plik i aby każda linijka z pliku ze ścieżkami była zapisana do kolejno TStringList[0], TStringList[1], TStringList[2], TStringList[3], TStringList[4] itd.
No właśnie tak myślałem tylko nie wiedziałem czy poszczególne linijki wczytają się do zmiennej. Ale mówisz że tak ?
//zaraz sprawdzę.
Użytkownik pura89 edytował ten post 21 marzec 2006, 17:32
Ale mówisz że tak ?
Sprawdź ;)
No dobra wczytały się zmienne wszystko jest ok. Ale chciałbym zapisać zmienną na początek. Zrobiłem takie coś:
sciezki := TStringList.Create; sciezki.Add((PageControl1.ActivePage.Controls[0] as TMojSynEdit).sciezkaDoPliku); sciezki.LoadFromFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; sciezki.SaveToFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; sciezki.Free;
Ale to niedziała poprstu nie zapisauje się zmienna z aktwnej zakładki. I teraz moje pytanie jak zapisać na sam początek tstringa zmienną ??
I teraz moje pytanie jak zapisać na sam początek tstringa zmienną ??
http://forum.ks-eksp...ndpost&p=568207 :>
Nie no sory moja wina. Chodziło mi tylko o to aby zmienna znalazła się w nowej lini. Trochę pomyślałem i wpadałem :) to tak na przyszłość:
procedure TOkno.SaveReopens(Sender: TObject); const nowa_linia = Chr(13) + Chr(10); begin sciezki := TStringList.Create; sciezki.LoadFromFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; if sciezki.IndexOf((PageControl1.ActivePage.Controls[0] as TMojSynEdit).sciezkaDoPliku) < 0 then sciezki.Text := (PageControl1.ActivePage.Controls[0] as TMojSynEdit).sciezkaDoPliku + nowa_linia + sciezki.Text; sciezki.SaveToFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; sciezki.Free; end;
Jeszcze raz przepraszam.
Użytkownik pura89 edytował ten post 21 marzec 2006, 21:21
Chodziło mi tylko o to aby zmienna znalazła się w nowej lini. Trochę pomyślałem i wpadałem :)
sciezki.Insert(0, sciezkaDoPliku); ??
sciezki.Insert(0, sciezkaDoPliku); ??
No, ale wtedy tekst który znajdował się w pierwszej linicje zostanie zastąpiony a nie dodany.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Plik tekstowy ??
Tak. Zwykły plik tekstowy. Np:
AssignFile(reopen,ExtractFilePath(ParamStr(0))+'config\reopens.prp') ; Append(reopen); i teraz jak dopisać zawartość na początek pliku.
Ja bym to zrobił przy pomocy TStringList.
str: TStringlist; str := TStringlist.Create; Str.LoadFormFile('123.txt'); Str.Text := 'dodany' + Str.Text; Str.SaveToFile('123.txt'); Str.Free;
Z palca pisalem ale powinno działać.
No dobra to moze da się jakoś odczytać plik od końca ?. I drugie pytanie.
Otóż mam plik w takiej postaci:
C:/dokument.txt
D:/dokument.txt
każda ścieżka jest zapisana w nowej linijce. I teraz pytanie jak odczytać każdą ścieżkę i przypisać każdą ścieżkę do Tstringa ?. Czyli np.
zmienna := Tstrings.Create();
zmienna [0] := pierwsza sciezka itp.
Ale o co chodzi z plikami ?? Mają się z pliku pobrać ścieżki do plików i do każdego pliku coś dopisać z przodu ??
Nie chodzi mi o to aby wczytać plik i aby każda linijka z pliku ze ścieżkami była zapisana do kolejno TStringList[0], TStringList[1], TStringList[2], TStringList[3], TStringList[4] itd.
Nie chodzi mi o to aby wczytać plik i aby każda linijka z pliku ze ścieżkami była zapisana do kolejno TStringList[0], TStringList[1], TStringList[2], TStringList[3], TStringList[4] itd.

No właśnie tak myślałem tylko nie wiedziałem czy poszczególne linijki wczytają się do zmiennej. Ale mówisz że tak ?
//zaraz sprawdzę.
Użytkownik pura89 edytował ten post 21 marzec 2006, 17:32
Ale mówisz że tak ?
Sprawdź ;)
No dobra wczytały się zmienne wszystko jest ok. Ale chciałbym zapisać zmienną na początek. Zrobiłem takie coś:
sciezki := TStringList.Create; sciezki.Add((PageControl1.ActivePage.Controls[0] as TMojSynEdit).sciezkaDoPliku); sciezki.LoadFromFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; sciezki.SaveToFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; sciezki.Free;
Ale to niedziała poprstu nie zapisauje się zmienna z aktwnej zakładki. I teraz moje pytanie jak zapisać na sam początek tstringa zmienną ??
I teraz moje pytanie jak zapisać na sam początek tstringa zmienną ??
http://forum.ks-eksp...ndpost&p=568207 :>
Nie no sory moja wina. Chodziło mi tylko o to aby zmienna znalazła się w nowej lini. Trochę pomyślałem i wpadałem :) to tak na przyszłość:
procedure TOkno.SaveReopens(Sender: TObject); const nowa_linia = Chr(13) + Chr(10); begin sciezki := TStringList.Create; sciezki.LoadFromFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; if sciezki.IndexOf((PageControl1.ActivePage.Controls[0] as TMojSynEdit).sciezkaDoPliku) < 0 then sciezki.Text := (PageControl1.ActivePage.Controls[0] as TMojSynEdit).sciezkaDoPliku + nowa_linia + sciezki.Text; sciezki.SaveToFile(ExtractFilePath(ParamStr(0))+'config/reopens.prp') ; sciezki.Free; end;
Jeszcze raz przepraszam.
Użytkownik pura89 edytował ten post 21 marzec 2006, 21:21
Chodziło mi tylko o to aby zmienna znalazła się w nowej lini. Trochę pomyślałem i wpadałem :)
sciezki.Insert(0, sciezkaDoPliku); ??
sciezki.Insert(0, sciezkaDoPliku); ??

No, ale wtedy tekst który znajdował się w pierwszej linicje zostanie zastąpiony a nie dodany.
