Stránka 1 z 2

Jak sloučit soubory?

Napsal: 31 srp 2020 16:33
od flowem
Zdravím,

mám dva soubory, jeden s českými slovy, druhý s anglickými a potřebuju je nějak spojit.
Jde mi o to, aby položky, které mají první slovo stejné, se přepsaly na české a ty, které chybí, aby se nakopírovaly.

Příklad:

Anglický soubor:

Kód: Vybrat vše

APPLE   Apple
ORANGE   Orange
BLUE   Blue


Český soubor:

Kód: Vybrat vše

APPLE   Jablko
APPLE_2   Jablko2
ORANGE   Pomeranč
APRICOT Meruňka


Výsledek:

Kód: Vybrat vše

APPLE   Jablko
APPLE_2   Jablko2
ORANGE   Pomeranč
APRICOT Meruňka
BLUE   Blue


Jsou to .txt soubory s několika set slovy, šlo by to nějak udělat?

Díky

Re: Jak sloučit soubory?

Napsal: 31 srp 2020 16:56
od faraon
Malý prográmek v BASICu, Perlu, Pythonu... Nebo s trochou ruční práce to můžeš udělat v nějakém spreadsheetu, třeba Excelu.

Re: Jak sloučit soubory?

Napsal: 31 srp 2020 17:03
od flowem
V tom bohužel neumím... pokud by se našla ochotná duše, která by mi to napsala (pokud to není nějak časově náročný), byl bych moc rád.
Případně, pokud existuje nějaký program, který by to dokázal a je někde ke stažení, tak prosím o link.

Mám těch souborů na sloučení vícero a strašně by mi to ulehčilo život... :-D

Re: Jak sloučit soubory?

Napsal: 31 srp 2020 17:16
od ITCrowd
Zkus si pročíst: viewtopic.php?f=39&t=106648 Předpokládám něco podobného.
Pokud ano, tak dodat vzorové soubory.

Re: Jak sloučit soubory?

Napsal: 31 srp 2020 17:26
od petrmet
Já bych to řešil v databázi. Soubory importovat do tabulek, join, export do txt.

Re: Jak sloučit soubory?

Napsal: 31 srp 2020 21:24
od faraon
Tak co, jak jste daleko s domácím úkolem? :lol:

Mě to z programu vylezlo takhle seřazené:

Kód: Vybrat vše

APPLE   Jablko
APPLE_2   Jablko2
APRICOT Meruňka
BLUE   Blue
ORANGE   Pomeranč

A nebo takhle bez abecedního seřazení:

Kód: Vybrat vše

APPLE   Jablko
ORANGE   Pomeranč
BLUE   Blue
APPLE_2   Jablko2
APRICOT Meruňka

Předpokládám že jde vždy jen o jedno anglické slovo, a ne slovní spojení. To by se potom musel použít jiný oddělovač než mezera!

Re: Jak sloučit soubory?

Napsal: 31 srp 2020 21:35
od CZechBoY
Pokud je to stejne serazeny tak opravdu ctrl+c ctrl+v v excelu :)

Re: Jak sloučit soubory?

Napsal: 01 zář 2020 19:13
od faraon
První školní den je za námi a já mám domácí úkol hotový. Teda doufám, potřeboval bych víc dat k otestování:

https://www.youtube.com/watch?v=qe-EoCPAyyI

Re: Jak sloučit soubory?

Napsal: 01 zář 2020 20:38
od atari
:thumbup:

Re: Jak sloučit soubory?

Napsal: 02 zář 2020 09:17
od _hm
Pro příště je dobré i napsat, co máš pro řešení k dispozici.

BASIC použitý v ukázce výše (od *faraona*) je výborný jazyk, sám jsem s ním kdysi začínal. Ten by měl být v každém PC s Microsoftem.

Jestli máš Linux, můžeš využít např. již zmíněný Perl. Tam by to bylo třeba nějak takhle:

Kód: Vybrat vše

#!/usr/bin/perl -w

if ($#ARGV != 1) {
   print "\nNejsou zadány soubory.";
   print "\nProgram je nutné spustit se dvěma parametry: anglický_soubor český_soubor\n";
   exit 0;}

my %hVysl;
open (Anglicky, $ARGV[0]);
foreach my $Radek (<Anglicky>) {
   my @Slova = split (' ', $Radek);
   $hVysl{$Slova[0]} = $Slova[1];}
close (Anglicky);
open (Cesky, $ARGV[1]);
foreach my $Radek (<Cesky>) {
   my @Slova = split (' ', $Radek);
   $hVysl{$Slova[0]} = $Slova[1];}
close (Cesky);
foreach my $Klic (sort (keys %hVysl)) {
   print $Klic . ' ' . $hVysl{$Klic} . "\n";}

Ze vstupních souborů

Kód: Vybrat vše

APPLE Apple
ORANGE  Orange
BLUE   Blue


a

Kód: Vybrat vše

APPLE        Jablko
APPLE_2   Jablko2
ORANGE Pomeranč
APRICOT Meruňka


to vypíše

Kód: Vybrat vše

APPLE Jablko
APPLE_2 Jablko2
APRICOT Meruňka
BLUE Blue
ORANGE Pomeranč

Výpis si můžeš přesměrovat do souboru.

Re: Jak sloučit soubory?

Napsal: 02 zář 2020 18:25
od faraon
To je moc pěkná ukázka toho, že v Perlu jde opravdu o MALÝ prográmek 8)

QBasic býval povinnou součástí MS-DOSu a ještě na instalačkách W9x byl přidaný jako doplněk. Já to můžu zkompilovat jenom šestnáctibitově, takže to dnes poběží akorát v DOSBoxu, což je nejjednodušší a nejrozšířenější virtualizační platforma schopná spouštět shodné programy na téměř jakémkoliv dnešním počítači s jakýmkoliv systémem, včetně lepších mobilů. Ale také existuje QB64, pomocí kterého by to mělo jít spustit i na dnešních čtyřiašedesátibitových Widlích!

A jinak interpret QBasicu lze na Internetu najít a stáhnout z mnoha tisíc míst, je to jeden z nejrozšířenějších "warezů". A stále má rozsáhlou uživatelskou základnu, poslední roky s probíhající retrovlnou dokonce rostoucí...

Takže zdroják programu je k dispozici po licencí GNU GPL 3 a jeho použití je na vlastní nebezpečí: :lol:
PREKRYV.ZIP

Re: Jak sloučit soubory?

Napsal: 02 zář 2020 21:49
od flowem
Děkuji všem za reakce, neměl jsem teď moc času, ale zkusím odpovědět nějak všem.

Vždycky se jedná jen o 2 soubory, které je potřeba sloučit. Nikdy není stejný počet řádků. Stejná slova nejsou ani na stejném řádku. Všechno je poházené a v EN souboru je třeba 3x méně slov než v tom českém, ale i přesto to potřebuju sloučit, abych měl výstup všechny české (pokud to jde, viz můj 1. příspěvek) a zbytek ty anglické, které v CZ souboru nebyly.

Ještě teda dodám, že jak máme vždycky začátek, ten je vždy velkými písmeny a může mít více slov, ty jsou ale vždy děleny podtržítkem, třeba THIS_IS_ THE_FIRST.
A pak je vždy mezera (TAB) a následují slova, která můžou být složena z více slov, ale už jen s mezerou.
Takže to může vypadat klidně takhle:
Pro CZ: THIS_IS_ THE_FIRST Tohle je první
Pro EN: THIS_IS_ THE_FIRST This is the first
Výsledek bude tedy v CZ.

Vyzkouším co radíte a dám vědět.

Dodatečně přidáno po 33 minutách 59 vteřinách:
EDIT:

_hm: tvůj script funguje dobře, ale ignoruje ty slova s mezerou, vypíše vždy jen první slovo a pak už vypisuje zase další řádek. Šlo by to nějak upravit? Nějak se mi to nedaří vypsat do souboru, mohl bys to prosím taky přidat?

EDIT2: Tak dobrý, už mi to ukládá do souboru. Ty mezery jsem vyřešil jinak.

Ještě poslední věc, pokud to teda půjde nějak... šlo by udělat, aby to česká slova, která nejsou zároveň i v anglickém souboru, ignorovalo a vůbec je nevypsalo? Že by to teda vypsalo jen ty, které jsou zároveň v CZ i AN souboru, ale ty, které jsou jen v AN a nejsou v CZ by zůstaly i tak. :-D

Díky :-)