sazian Posted February 16, 2006 Report Share Posted February 16, 2006 Witam,Mam następujący problem:Mam 2 liki a program ma je porównać i w TListBox mają zostać wyświetlone te linijki, które są w pliku 2 a nie ma ich w pliku 1 Link to comment Share on other sites More sharing options...
5corpio Posted February 16, 2006 Report Share Posted February 16, 2006 Ja nie rozumiem napisz jakoś innaczej może uda się pomóc. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
sazian Posted February 16, 2006 Author Report Share Posted February 16, 2006 Mam 2 plik:plik1.txt i plik2.txtzawartość plik1.txt to KODnapis1napis2napis3plik2.txtKODnapis1napis2napis3napis4te 2 plik są porównywane w pliku1 nie ma napis4, ale jest w pliku2, więc zostaje wyświetlony wTListBox Link to comment Share on other sites More sharing options...
5corpio Posted February 16, 2006 Report Share Posted February 16, 2006 A czy kolejność w obu jest taka sama tylko po prostu czasem właśnie brakuje tej jednej linijki ? czy np. możliwa jest też taka kombinacja(przykładowa):plik 1.txt [code=Delphi] napis3 napis1 napis2bkqŚ4)4)4) [/code]? Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
sazian Posted February 16, 2006 Author Report Share Posted February 16, 2006 Kolejność i ilość może być różna Link to comment Share on other sites More sharing options...
5corpio Posted February 16, 2006 Report Share Posted February 16, 2006 Hmmm może wczytać te linijki posortować i potem w pętli sprawdzać co się zgadza co nie(czy stringi są takie same) ? (nie jestem pewien czy to może zadziałać) Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
sazian Posted February 16, 2006 Author Report Share Posted February 16, 2006 oto fragment takiego pliku(bardzo mały)KODc:PDOXUSRS.NETc:WINDOWSc:FOUND.000c:Bootfont.binc:ntldrc:NTDETECT.COMc:boot.inic:Documents and Settingsc:Program Filesc:CONFIG.SYSc:AUTOEXEC.BATc:IO.SYSc:MSDOS.SYSc:System Volume Informationc:Moje Strony Webc:Answer.txtc:pestexterminatorlog.htmlc:spitfirec:TREEINFO.WCc:Recycledi tutaj raczej to nie będzie najlepszym rozwiązaniem Link to comment Share on other sites More sharing options...
Iskar Posted February 16, 2006 Report Share Posted February 16, 2006 Dlaczego nie? Ależ oczywiście, że tak, posortujesz stringi z jednego i drugiego pliku, potem po kolei jedziesz po liście stringów z tego 1. pliku, porównujesz je za pomocą CompareText (więcej info tutaj: http://www.unit1.pl/127,8,podglad.html). Powinno działać ;-) Link to comment Share on other sites More sharing options...
Firen Posted February 16, 2006 Report Share Posted February 16, 2006 Hmm jezeli dobrze zrozumialem to:bierzesz string z jednego pliku porownujesz ze wszystkimi stringami z drugiego itdSorki ale nie widze problemu. Moze nie kapuje zlozonosci problemu Down With The Sickness Link to comment Share on other sites More sharing options...
TSr Posted February 16, 2006 Report Share Posted February 16, 2006 Wszystko zależy od tego czy dużo jest danych w plikach i czy często będzie się je porównywać. Jeśli jeśli tak to trzeba sortować, żeby program działał sprawnie, a jeśli to nie ma znaczenia to jak najbardziej można tym prostym sposobem Ubuntu.pl user #10593 Link to comment Share on other sites More sharing options...
Toster Posted February 17, 2006 Report Share Posted February 17, 2006 Tak czy siak bedzie musial sprawdzic kazdy z kazdym, dopoki nie znajdzie dwoch takich samych. Sortowanie przyspieszy ten proces i tyle. Najprostrze rozwiazanie mozna zrobic w 5-7 linijkach programu (bez sortowania) Always Dark<br /> Link to comment Share on other sites More sharing options...
sazian Posted February 17, 2006 Author Report Share Posted February 17, 2006 Tylko jak napisać to 5-7 linijek, bo jakoś nie mam pomysłu.a tak wygląda przykładowy plik http://sazian1.freehost.pl/WinXP.txt Link to comment Share on other sites More sharing options...
oksal Posted February 17, 2006 Report Share Posted February 17, 2006 Długi...Cholernie długii:-)Sortownaie najszybciej i najłatwiej tego pliku zrobisz tak [code=Delphi] procedure TForm1.Button1Click(Sender: TObject); var LiN[ÓBY[BY[X[K^X]H[Y[Ć7FŁE7G&ćtĆ7B7&VFSĆ7F6'FVCŁG'VS1Ń1ąĄ=ąą94(1ŃMQile(OpenDialog1.FileName); Lista.Free; end; end; *óz,&Ł6Źś.WzZaB[CB [/code]i sprawdzaj plik z dwóch stron od poczatku i końca Powiedzmy robisz indeks L i P .Na poczatku L to 0 a P to calkowita liczba linii.. Po kazdorazowym obiegu petli zwiekszasz L a zmniejszasz P jesli P<L to wyskakujesz z petli lub jak znajdzeisz plik.. Cyz jak tam chcesz. Zysk masz taki ze za jednym rzem sprawdzasz dane z dwóch konców... Jesst jeszcze jedna metoda..Na liczbach fajnie dziala przeszukiwanie zbioru przez polowienie warunek zbiory musz abyc uporzadkowane ale czy poprawnie działało by to na stringach?... pozdrawiam oksal Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.