Porovnání textových souborů po řádcích – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Porovnání textových souborů po řádcích – Java – Fórum – Programujte.comPorovnání textových souborů po řádcích – Java – Fórum – Programujte.com

 

avalagne0
Newbie
8. 3. 2011   #1
-
0
-

Zdravím,
potřeboval bych menší radu se zadáním mé semestrální práce.
Dostal jsem za úkol program, který porovná obsah textových souborů a to po jednotlivých řádcích, nikoli po znacích. Poté vypíše procentuální shodu souborů.
Bohužel mě nenapadá, jakou metodu použít.

Má představa je, že bych vytvořil GUI prostředí pro vybrání, ukončení souboru + nějaké další funkce a vytvořil bych okno, kde by byl vidět aktuálně vybraný soubor.

Problém je, že nevím jak nejlépe porovnat jednotlivé řádky. Napadají mě dvě metody a to compareTo() a equals(). Ovšem u každé vidím problém.

Přes compareTo() nevím, jak bych vyřešil odřádkování a vlastně i nějaký součet, ze kterého bych poté mohl vypočítat procentuální shodu, jelikož navrací číslo, zda je řetězec stejný, vetší nebo menší.

U equals() to vidím podobně.


Pokud byste někdo měl nějakou radu nebo návrh, budu rád. Nechci po nikom celé kódy, rád si to naprogramuju. Jen se zkrátka nemám od čeho odrazit, protože knihovna Javy je velká a možnosti obrovské.

Děkuji

Nahlásit jako SPAM
IP: 78.128.148.–
nervak0
Věrný člen
8. 3. 2011   #2
-
0
-

Jako, že se
1. řádek 1. souboru porovná s 1. řádkem 2. souboru
2. řádek 1. souboru porovná s 2. řádkem 2. souboru
atd... ?
Tam přece není co řešit, prostě počítáš řádky a shody a nakonec spočítáš procentuální poměr těch dvou hodnot. Ale to je na semestrálku nějaké lehké, jestli se to má porovnávat jinak, tak to budeš muset popsat detailněji.

Nahlásit jako SPAM
IP: 213.211.51.–
avalagne0
Newbie
9. 3. 2011   #3
-
0
-

Je to trochu ještě jinak, máš pravdu. Popsal jsem to jen lehce. Ono to je semestrálka ze Základů programování v prvním semestru, kde člověk nemusí mít žádné základy. Takže možná je to pro někoho lehké, ale pro někoho ne.

Mělo by to porovnávat "n" souborů, kde bude zachytávat řádky a pokud budou stejné, uloží si shodu. Poté provede procentuální shodu.

Například takto:

Soubor 1:
Ahoj,
jak se mas?
Jo fajn, mam se dobre.

Soubor 2:
Cau,
jak se mas?
Jo fajn, mam se dobre.

Soubor 3:
Ahoj,
mas se?
Celkem to jde.


A takhle až "n" souborů porovnat po řádcích. Soubor 1 se Souborem 2 má stejné 2 řádky, tedy 66.67% shoda v řádcích. Soubor 1 se Souborem 3 má stejný jeden řádek, tedy 33,3% shoda v řádcích. A takhle samozřejmě další... I když budou přeházené řádky, tak to musí správně určit...

Snad už je to správně popsané.

Nahlásit jako SPAM
IP: 78.128.150.–
KIIV
~ Moderátor
+43
God of flame
9. 3. 2011   #4
-
0
-

To avalagne : asi bych si udelal nejaky checksumy radku a nejaky asociativni pole .. pak uz zalezi na zpusobu, co delat s prazdnejma radkama, co s mezerama, jak to srovnavat mezi vice souborama..

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
avalagne0
Newbie
19. 3. 2011   #5
-
0
-

Díky za rady. Nakonec jsme to museli udělat ještě úplně jinak, protože jsme údajně špatně pochopili zadání. Skoro nic z toho co jsem psal tedy neplatí. Už to máme novým způsobem.

Ale díky moc :)

Nahlásit jako SPAM
IP: 83.208.55.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý