Sign in Join
Wiki copytemporary

Stringlist/pl: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Stringlist/pl

OldNewLine
1+## Lista ciągów string
2+
3+W przypadku listy ciągów (StringList) plik jest w całości wczytywany do pamięci roboczej. Lista ciągów jest zatem odpowiednia dla plików o małych i średnich rozmiarach. Lista ciągów to sposób na szybkie i łatwe przetwarzanie plików. Lista ciągów znakomicie nadaje się do przetwarzania plików mniejszych niż 1 megabajt. Aby przetworzyć plik, cały plik jest ładowany do pamięci głównej. Każdy wiersz rekordu danych jest wczytywany do własnego elementu tablicy.
4+
5+## Tworzenie pliku
6+
7+``` pascal
8+procedure SubStringlistFileCreate ();
9+var
10+ // TStringlist jest częścią modułu Classes
11+ strList : TStringList;
12+begin
13+ // Tworzy listę ciągów
14+ strList := TStringList.Create;
15+
16+ // Dodaje rekord string wraz z podziałem wiersza do listy ciągów
17+ strList.Add('xyz');
18+
19+ // Dodaje rekord string wraz z podziałem wiersza do listy ciągów
20+ strList.Add('abcd');
21+
22+ // Zapisuje listę ciągów do pliku
23+ strList.SaveToFile('example.txt');
24+
25+ // Zwalnia listę ciągów z pamięci
26+ strList.Free;
27+end;
28+```
29+
30+## Dołączą rekord do istniejącego pliku
31+
32+``` pascal
33+procedureSubStringlistApplyFile ();
34+var
35+ // TStringlist jest częścią modułu Classes
36+ strList : TStringList;
37+begin
38+ // Tworzy listę ciągów
39+ strList := TStringList.Create;
40+
41+ // Wczytuje cały plik do listy ciągów
42+ strList.LoadFromFile('example.txt');
43+
44+ // Dodaje rekord string wraz z podziałem wiersza do listy ciągów
45+ strList.Add('text');
46+
47+ // Zapisuje listę ciągów do pliku
48+ strList.SaveToFile('example.txt');
49+
50+ // Zwalnia listę ciągów z pamięci
51+ strList.Free;
52+end;
53+```
54+
55+## Szukanie rekordu
56+
57+### Metoda 1
58+
59+``` pascal
60+procedure subStringlistFileSearch ();
61+var
62+ // TStringlist jest częścią modułu Classes
63+ strList : TStringList;
64+ intI : Integer;
65+begin
66+ // Tworzy listę ciągów
67+ strList := TStringList.Create;
68+
69+ // Wczytuje cały plik do listy ciągów
70+ strList.LoadFromFile('example.txt');
71+
72+ // Użyj zliczanie w pętli, aby znaleźć odpowiedni rekord
73+ for intI := 0 to strList.Count -1 do
74+ begin
75+ // Wyszukaj i zmień rekord
76+ if strList [intI] = 'abcd' then
77+ strList [intI] := 'dcba';
78+ end;
79+
80+ // Zapisuje listę ciągów do pliku
81+ strList.SaveToFile('example.txt');
82+
83+ // Zwalnia listę ciągów z pamięci
84+ strList.Free;
85+end;
86+```
87+
88+### Metoda 2
89+
90+``` pascal
91+procedure subStringlistInFileSearch2 ();
92+var
93+ // TStringlist jest częścią modułu Classes
94+ strList : TStringList;
95+ intI : Integer;
96+begin
97+ // Tworzy listę ciągów
98+ strList := TStringList.Create;
99+
100+ // Wczytuje cały plik do listy ciągów
101+ strList.LoadFromFile('example.txt');
102+
103+ // Wyszukuje „Text”, jeśli nie zostanie znaleziony, wyszukiwanie zwróci -1
104+ intI := strList.IndexOf ('Text');
105+
106+ // Jeśli poszukiwany rekord zostanie znaleziony, zastępuje go
107+ if intI <> -1 then
108+ strlist[intI] := 'tXET';
109+
110+ // Zapisuje listę ciągów do pliku
111+ strList.SaveToFile('example.txt');
112+
113+ // Zwalnia listę ciągów z pamięci
114+ strList.Free;
115+ end;
116+```
117+
118+## Sortuj plik alfabetycznie
119+
120+``` pascal
121+procedure SubStringlistFileSort ();
122+var
123+ // TStringlist jest częścią modułu Classes
124+ strList : TStringList;
125+ intI : Integer;
126+ begin
127+ // Tworzy listę ciągów
128+ strList := TStringList.Create;
129+
130+ // Wczytuje cały plik do listy ciągów
131+ strList.LoadFromFile('example.txt');
132+
133+ // Sortuj listę ciągów alfabetycznie
134+ strList.Sort;
135+
136+ // Zapisuje listę ciągów do pliku
137+ strList.SaveToFile('example.txt');
138+
139+ // Zwalnia listę ciągów z pamięci
140+ strList.Free;
141+ end;
142+```
143+
144+## Zobacz także
145+
146+- [[File types/pl|Typy plików]]
147+
148+---
149+*From the Free Pascal wiki, page "Stringlist/pl", as it stood on 2022-01-28 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
150+Category: Code Snippets
151+Category: FPC
152+Category: Pascal

Back to history