118 " |
122 " |
119 ! |
123 ! |
120 |
124 |
121 documentation_czech |
125 documentation_czech |
122 " |
126 " |
123 první fáze: |
127 prvnĂ fĂĄze: |
124 ############################################################################################################################# |
128 ############################################################################################################################# |
125 first := #('prvni' 'druhy' 'treti' 'treti' 'paty' 'zeleny' 'ruzovy' ). |
129 first := #('prvni' 'druhy' 'treti' 'treti' 'paty' 'zeleny' 'ruzovy' ). |
126 second := #('prvni' 'treti' 'zeleny' 'ruzovy' 'treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). |
130 second := #('prvni' 'treti' 'zeleny' 'ruzovy' 'treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). |
127 ############################################################################################################################ |
131 ############################################################################################################################ |
128 First a second představujou dvě pole, které chceme porovnávat. Jednotlivé poloky v poli si lze představit jako řádky, případně jako slova v řádku. |
132 First a second pøedstavujou dvĂŹ pole, kterĂŠ chceme porovnĂĄvat. JednotlivĂŠ poloÂky v poli si lze pøedstavit jako øådky, pøĂpadnĂŹ jako slova v øådku. |
129 Podle toho, co je potřeba porovnávat. |
133 Podle toho, co je potøeba porovnåvat. |
130 |
134 |
131 ***************************************************************************************************************************** |
135 ***************************************************************************************************************************** |
132 diff := FelDiff new felDiff. |
136 diff := FelDiff new felDiff. |
133 ***************************************************************************************************************************** |
137 ***************************************************************************************************************************** |
134 Zde probíhá inicializace defaultníh proměnných. Funguje to jako konstruktor. |
138 Zde probĂhĂĄ inicializace defaultnĂh promĂŹnnĂ˝ch. Funguje to jako konstruktor. |
135 |
139 |
136 ############################################################################################################################ |
140 ############################################################################################################################ |
137 diff diff: first b: second |
141 diff diff: first b: second |
138 ############################################################################################################################ |
142 ############################################################################################################################ |
139 První fáze nutná pro porovnávání polí. Vzniknou dvě instance tříde filedata uloené do pole. Tyto instance budou obsahovat následující údaje: |
143 PrvnĂ fĂĄze nutnĂĄ pro porovnĂĄvĂĄnĂ polĂ. Vzniknou dvĂŹ instance tøĂde filedata uloÂenĂŠ do pole. Tyto instance budou obsahovat nĂĄsledujĂcĂ Ăşdaje: |
140 |
144 |
141 filevec[1].equivs=#(1 2 3 3 4 5 6) |
145 filevec[1].equivs=#(1 2 3 3 4 5 6) |
142 filevec[1].bufferedLines=7 |
146 filevec[1].bufferedLines=7 |
143 filevec[1].changedFlag=#() |
147 filevec[1].changedFlag=#() |
144 |
148 |
145 filevec[2].equivs=#(1 3 6 7 3 8 9 10 10 11 12 13 14 15 10 10) |
149 filevec[2].equivs=#(1 3 6 7 3 8 9 10 10 11 12 13 14 15 10 10) |
146 filevec[2].bufferedLines=16 |
150 filevec[2].bufferedLines=16 |
147 filevec[2].changedFlag=#() |
151 filevec[2].changedFlag=#() |
148 |
152 |
149 V zásadě se vytvořila structura Dictionary, která jednotlivé řádky(slova) převedla na čísla. Pole equvs pak představuje číselně slova(řádky). |
153 V zĂĄsadĂŹ se vytvoøila structura Dictionary, kterĂĄ jednotlivĂŠ øådky(slova) pøevedla na èĂsla. Pole equvs pak pøedstavuje èĂselnĂŹ slova(øådky). |
150 čísla, která se nalézají v obou dbou polí equivs značí, e soubory sdílí alespoň nějaké slovo(řádek). |
154 èĂsla, kterĂĄ se nalĂŠzajĂ v obou dbou polĂ equivs znaèĂ, Âe soubory sdĂlĂ alespoò nĂŹjakĂŠ slovo(øådek). |
151 |
155 |
152 ***************************************************************************************************************************** |
156 ***************************************************************************************************************************** |
153 change:= diff diff2: true. |
157 change:= diff diff2: true. |
154 ***************************************************************************************************************************** |
158 ***************************************************************************************************************************** |
155 |
159 |
156 Zde ji dochází k porovnání obou dvou polí s řádky(slovy). Lze si vybrat mezi forwardscriptem a reversescriptem. |
160 Zde ji dochåzà k porovnånà obou dvou polàs øådky(slovy). Lze si vybrat mezi forwardscriptem a reversescriptem. |
157 |
161 |
158 1) metoda discardconfusinglines |
162 1) metoda discardconfusinglines |
159 výsledek: |
163 výsledek: |
160 filevec[1].undiscardeded=#(1 3 3 5 6 0 0) |
164 filevec[1].undiscardeded=#(1 3 3 5 6 0 0) |
161 filevec[1].realIndexes= #(0 2 3 5 6 0 0) |
165 filevec[1].realIndexes= #(0 2 3 5 6 0 0) |
162 filevec[1].nondiscardedLines=5 |
166 filevec[1].nondiscardedLines=5 |
163 filevec[1].changedFlag=#(false false true false false true false false false) |
167 filevec[1].changedFlag=#(false false true false false true false false false) |
164 |
168 |
165 filevec[2].undiscardeded=#(1 3 5 6 3 0 0 0 0 0 0 0 0 0 0 0) |
169 filevec[2].undiscardeded=#(1 3 5 6 3 0 0 0 0 0 0 0 0 0 0 0) |
166 filevec[2].realIndexes= #(0 1 2 3 4 0 0 0 0 0 0 0 0 0 0 0) |
170 filevec[2].realIndexes= #(0 1 2 3 4 0 0 0 0 0 0 0 0 0 0 0) |
167 filevec[2].nondiscardedLines=5 |
171 filevec[2].nondiscardedLines=5 |
168 |
172 |
169 Undiscarded- Řádky soubory, které jsou shodné. |
173 Undiscarded- ĂĂĄdky soubory, kterĂŠ jsou shodnĂŠ. |
170 RealIndexes - indexy řádků v poli(je potřeba přičíst jedna) |
174 RealIndexes - indexy øådkĂš v poli(je potøeba pøièĂst jedna) |
171 - to znamená e index prvního 3->3 pozice v prvním vstupním poli |
175 - to znamenĂĄ Âe index prvnĂho 3->3 pozice v prvnĂm vstupnĂm poli |
172 - index druhého 3->2 pozice v druhém vstupním poli a 3->5 pozice v druhém vstupním poli |
176 - index druhĂŠho 3->2 pozice v druhĂŠm vstupnĂm poli a 3->5 pozice v druhĂŠm vstupnĂm poli |
173 NondiscardedLines- značí kolik čádků(slov) je shodných v obou polích. |
177 NondiscardedLines- znaèà kolik èådkĂš(slov) je shodnĂ˝ch v obou polĂch. |
174 |
178 |
175 2)Následuje porovnávání jednotlivých polí a vytvoření výsledku |
179 2)Nåsleduje porovnåvånà jednotlivých polà a vytvoøenà výsledku |
176 |
180 |
177 3)Výsledek Reverse skript |
181 3)Výsledek Reverse skript |
178 |
182 |
179 inserted=12('treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa') |
183 inserted=12('treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa') |
180 deleted=0 |
184 deleted=0 |
181 line0=7('ruzovy') |
185 line0=7('ruzovy') |
182 line1=4('ruzovy') |
186 line1=4('ruzovy') |
183 link=next |
187 link=next |
184 |
188 |
185 inserted- kolik znaků bylo vloeno |
189 inserted- kolik znakĂš bylo vloÂeno |
186 deleted - kolik znaků bylo smazáno |
190 deleted - kolik znakĂš bylo smazĂĄno |
187 line0 - pořadí znaku za kterým bylo něco vloeno(smazáno) v prvním poli(poslední znak který je shodný v obou polích) |
191 line0 - poøadĂ znaku za kterĂ˝m bylo nĂŹco vloÂeno(smazĂĄno) v prvnĂm poli(poslednĂ znak kterĂ˝ je shodnĂ˝ v obou polĂch) |
188 line1 - pořadí znaku za kterým bylo něco smazáno(vloeno) v prvním poli(poslední znak který je shodný v obou polích) |
192 line1 - poøadĂ znaku za kterĂ˝m bylo nĂŹco smazĂĄno(vloÂeno) v prvnĂm poli(poslednĂ znak kterĂ˝ je shodnĂ˝ v obou polĂch) |
189 |
193 |
190 Take po znaku na pozici 4, je 12 vloených znaků oproti prvnímu |
194 TakÂe po znaku na pozici 4, je 12 vloÂenĂ˝ch znakĂš oproti prvnĂmu |
191 |
195 |
192 Zbytek pole vypadá takto: |
196 Zbytek pole vypadĂĄ takto: |
193 |
197 |
194 first := #('prvni' 'druhy' 'treti' 'treti' 'paty' 'zeleny' 'ruzovy' ). |
198 first := #('prvni' 'druhy' 'treti' 'treti' 'paty' 'zeleny' 'ruzovy' ). |
195 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
199 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
196 |
200 |
197 link není null a tudí odkazuje na dalí informace o změnách. |
201 link nenĂ null a tudĂÂ odkazuje na dalÂĂ informace o zmĂŹnĂĄch. |
198 inserted=0 |
202 inserted=0 |
199 deleted=2('treti' 'paty') |
203 deleted=2('treti' 'paty') |
200 line0=3('treti') |
204 line0=3('treti') |
201 line1=2('treti') |
205 line1=2('treti') |
202 link=next |
206 link=next |
203 |
207 |
204 zbytek pole vypadá takto: |
208 zbytek pole vypadĂĄ takto: |
205 first := #('prvni' 'druhy' 'treti' 'zeleny' 'ruzovy' ). |
209 first := #('prvni' 'druhy' 'treti' 'zeleny' 'ruzovy' ). |
206 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
210 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
207 |
211 |
208 link není null a tudí odkazuje na dalí informace o změnách. |
212 link nenĂ null a tudĂÂ odkazuje na dalÂĂ informace o zmĂŹnĂĄch. |
209 inserted=0 |
213 inserted=0 |
210 deleted=1('druhy') |
214 deleted=1('druhy') |
211 line0=1('prvni') |
215 line0=1('prvni') |
212 line1=1('prvni') |
216 line1=1('prvni') |
213 link=nil |
217 link=nil |
214 |
218 |
215 zbytek pole vypadá takto: |
219 zbytek pole vypadĂĄ takto: |
216 first := #('prvni' 'treti' 'zeleny' 'ruzovy' ). |
220 first := #('prvni' 'treti' 'zeleny' 'ruzovy' ). |
217 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
221 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
218 |
222 |
219 link je nil. Neexistuje ádná změna a tato pole jsou shodná. |
223 link je nil. Neexistuje ÂĂĄdnĂĄ zmĂŹna a tato pole jsou shodnĂĄ. |
220 |
224 |
221 4)Výsledek Forward skript |
225 4)Výsledek Forward skript |
222 |
226 |
223 inserted=0 |
227 inserted=0 |
224 deleted=1('druhy') |
228 deleted=1('druhy') |
225 line0=1('prvni') |
229 line0=1('prvni') |
226 line1=1('prvni') |
230 line1=1('prvni') |
227 link=next |
231 link=next |
228 |
232 |
229 zbytek pole vypadá takto: |
233 zbytek pole vypadĂĄ takto: |
230 first := #('prvni' 'treti' 'treti' 'paty' 'zeleny' 'ruzovy' ). |
234 first := #('prvni' 'treti' 'treti' 'paty' 'zeleny' 'ruzovy' ). |
231 second := #('prvni' 'treti' 'zeleny' 'ruzovy' 'treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). |
235 second := #('prvni' 'treti' 'zeleny' 'ruzovy' 'treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). |
232 |
236 |
233 link není nil jdeme na odkaz: |
237 link nenĂ nil jdeme na odkaz: |
234 inserted=0 |
238 inserted=0 |
235 deleted=2('treti' 'paty') |
239 deleted=2('treti' 'paty') |
236 line0=3('treti') |
240 line0=3('treti') |
237 line1=2('treti') |
241 line1=2('treti') |
238 link=next |
242 link=next |
239 |
243 |
240 zbytek pole vypadá takto: |
244 zbytek pole vypadĂĄ takto: |
241 first := #('prvni' 'treti' 'zeleny' 'ruzovy' ). |
245 first := #('prvni' 'treti' 'zeleny' 'ruzovy' ). |
242 second := #('prvni' 'treti' 'zeleny' 'ruzovy' 'treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). |
246 second := #('prvni' 'treti' 'zeleny' 'ruzovy' 'treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa' ). |
243 |
247 |
244 link není nil jdeme na odkaz: |
248 link nenĂ nil jdeme na odkaz: |
245 |
249 |
246 inserted=12('treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa') |
250 inserted=12('treti' 'bbb' 'ccc' 'aaa' 'aaa' 'hhh' 'iii' 'mmm' 'nnn' 'ppp' 'aaa' 'aaa') |
247 deleted=0 |
251 deleted=0 |
248 line0=7('ruzovy') |
252 line0=7('ruzovy') |
249 line1=4('ruzovy') |
253 line1=4('ruzovy') |
250 link=nil |
254 link=nil |
251 |
255 |
252 zbytek pole vypadá takto: |
256 zbytek pole vypadĂĄ takto: |
253 first := #('prvni' 'treti' 'zeleny' 'ruzovy' ). |
257 first := #('prvni' 'treti' 'zeleny' 'ruzovy' ). |
254 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
258 second := #('prvni' 'treti' 'zeleny' 'ruzovy'). |
255 |
259 |
256 Konec |
260 Konec |
257 " |
261 " |