Jak zrobić aby wczytać znaki z pliku aż do napotkania określonego znaku tzn. żeby wczytywał plik do/od znaku |
Tego typu małe problemy powinno się właśnie rozwiązywać samemu. Inaczej daj sobie spokój z programowaniem.
No ale jest wiele możliwości. Np. wczytywanie pliku kawałkami i testowanie każdego kawałka metodą Pos. Następnie kopiowanie całego kawałka, lub jego części, jeśli Pos znalazł '|'.
wczytujesz znak po znaku za pomoca read. albo wczytujesz do np. memo i przelatujesz calego stringa i dzielisz go na te 3 czesci (wszystko w pomocy)
(domyslam sie ze do odtwarzacza z napisami, potrzebne ci beda 3 linie (dzisiejszy standard), jesli sie nie myle, to na 4p jest kilka zrodel)
nie do memo tylko do tstringlist
(domyslam sie ze do odtwarzacza z napisami, potrzebne ci beda 3 linie (dzisiejszy standard), jesli sie nie myle, to na 4p jest kilka zrodel)
No to się mylisz zrobiłem prog który pisze Ci ile chodzi komp zapisuje do pliku i takie tak i teraz chce wczytać to żeby był taki "biling" :) np. z ostatniego miesiąca. Dzięki za odpowiedzi będe musiał popróbować
nie do memo tylko do tstringlist
podalem tylko jako przyklad...
jednakze prawda znana jest ze ze zmienna bedzie chodzic szybciej niz z obiektem.
belcio, sorki, no to sie rzeczywiscie pomylilem, ale schemat jest taki sam, wiec zobaczyc tez nie zaszczkodzi.
:-) Witam, zpodam Tobie kod Matroxa, nieco zmieniony: :-)
var
List: TStringList;
begin
List := TStringList.Create;
try
ExtractStrings(['|'], [], '1aaaaaaaaaaaa|2a|3a|4a|5a|6a|7a', List); {zamiast '|' możesz wpisać dowolny znak dzielacy, a zamiast '1aaaaaaaaaaaa|2a|3a|4a|5a|6a|7a' masz wpisać tekst do podziału}
Label1.Caption := List[0];{ czyli wartość numer 1 :)}
// Tutaj w liscie masz dostęp do wszystkich wartości np.:
// Label1.Caption := List[6]; czyli wartość numer 7 :)
finally
List.Free;
end;
end;
mam nadzieję, ze mnie dobrze zrozumiałeś, jakby co to napisz na gg:3434371 :-)
ja bym to zrobil tak :
var plik: TStringList;
procedure loadfiledo(fn:string; ch:Char);
var i:integer;
sl:tstringlist;
begin
if not fileexists(fn) then exit;
sl:=tstringlist.create;
plik:=tstringlist.create;
sl.loadfromfile(fn);
i:=0;
repeat
plik.add(sl.strings[i]);
inc(i);
until (pos(ch,sl.strings[i])>0)or(i=sl.count-1);
sl.free;
end;
powinno dzialac :-P
PS. wlaczenie: loadfiledo('plik.txt','-'); <- zmienna PLIK bedzie miala kawalek pliku plik.txt ;-)
DZięki panowie będe próbował THX
plik do tego tematu możecie znaleźć w dziale Twoje programy - link [url=http://4programmers.net/news.php?id=1684]http://4programmers.net/news.php?id=1684</url>
i tam to jest