Witam,
mam spore problemy z zadaniem domowym na PP. Zadanie brzmi:
Napisać program tłumaczący plik wejściowy na alfabet Morse’a i odwrotnie. Nazwa pliku do
przetłumaczenia podawana jest w linii poleceń po przełączniku -i, pliku wyjściowego po przełączniku
-o, kierunek tłumaczenia po -k, przy czym -k l2m oznacza tłumaczenie z alfabetu łacińskiego na
alfabet Morse’a, a -k m2l odwrotnie. Przykładowe wywołanie programu:
program.exe -o wyjscie -k m2l -i wejscie
Mój obecny kod wygląda tak:
program tlumacz_morsea;
var
i:integer;
procedure szyfrator(sciezka1:string); //zmienna sciezka1 ktora trzyma scezke do pliku
var
plik1 : text;
tekst, tekst_wyjsciowy : string; //
dlugosc, dlugosc_tekst : integer;//zmienna sterujaca petla
j : integer;
begin
tekst_wyjsciowy:='';
assign(plik1,sciezka1);
reset(plik1);
while not Eof(plik1) do
begin
read(plik1,tekst);
dlugosc_tekst:=Length(tekst);
for j:=0 to dlugosc_tekst do
begin
if (tekst[j]=('a')) or (tekst[j]=('A')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*-/') else
if (tekst[j]=('b')) or (tekst[j]=('B')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-***/') else
if (tekst[j]=('c')) or (tekst[j]=('C')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-*-*/') else
if (tekst[j]=('d')) or (tekst[j]=('D')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-**/') else
if (tekst[j]=('e')) or (tekst[j]=('E')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*/') else
if (tekst[j]=('f')) or (tekst[j]=('F')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/**-*/') else
if (tekst[j]=('g')) or (tekst[j]=('G')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/--*/') else
if (tekst[j]=('h')) or (tekst[j]=('H')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/****/') else
if (tekst[j]=('i')) or (tekst[j]=('I')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/**/') else
if (tekst[j]=('j')) or (tekst[j]=('J')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*---/') else
if (tekst[j]=('k')) or (tekst[j]=('K')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-*-/') else
if (tekst[j]=('l')) or (tekst[j]=('L')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*-**/') else
if (tekst[j]=('m')) or (tekst[j]=('M')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/--/') else
if (tekst[j]=('n')) or (tekst[j]=('N')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-*/') else
if (tekst[j]=('o')) or (tekst[j]=('O')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/---/') else
if (tekst[j]=('p')) or (tekst[j]=('P')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*--*/') else
if (tekst[j]=('q')) or (tekst[j]=('Q')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/--*-/') else
if (tekst[j]=('r')) or (tekst[j]=('R')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*-*/') else
if (tekst[j]=('s')) or (tekst[j]=('S')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/***/') else
if (tekst[j]=('t')) or (tekst[j]=('T')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-/') else
if (tekst[j]=('u')) or (tekst[j]=('U')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/**-/') else
if (tekst[j]=('w')) or (tekst[j]=('W')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*--/') else
if (tekst[j]=('x')) or (tekst[j]=('X')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-**-/') else
if (tekst[j]=('z')) or (tekst[j]=('Z')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/--**/') else
if (tekst[j]=('1')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*----/') else
if (tekst[j]=('2')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/**---/') else
if (tekst[j]=('3')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/***--/') else
if (tekst[j]=('4')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/****-/') else
if (tekst[j]=('5')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*****/') else
if (tekst[j]=('6')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-****/') else
if (tekst[j]=('7')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/--***/') else
if (tekst[j]=('8')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/---**/') else
if (tekst[j]=('9')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/----*/') else
if (tekst[j]=('0')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-----/') else
if (tekst[j]=('.')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/*-*-*-/') else
if (tekst[j]=(',')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/--**--/') else
if (tekst[j]=('!')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/-*-*--/') else
if (tekst[j]=('?')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/**--**/') else
if (tekst[j]=(' ')) then tekst_wyjsciowy:=tekst_wyjsciowy+('/') else tekst_wyjsciowy:=tekst_wyjsciowy+tekst[j];
end;
end;
end;
procedure deszyfrator(sciezka2:string);
var
plik2 : text;
tekst2, tekst_wyjsciowy2 : string;
j : integer;
tablica : array [1..1000] of string;
begin
j:=0;
tekst_wyjsciowy2:='';
assign(plik2,sciezka2);
reset(plik2);
while not Eof(plik2) do
begin
read(plik2,tekst2);
dlugosc_tekst:=Length(tekst2);
for j:=0 to dlugosc_tekst do
begin
if (tekst2[j]<>('/')) and (tekst2[j+1]<>('/')) and (tekst2[j+2]<>('/')) then read(plik2,tekst2);
end;
end;
end;
begin
end.
Moje pytania:
- Czy procedura szyfratora jest ok? Chodzi mi o wczytywanie pliku zewnętrznego.
- W jaki sposób uzyskać wymagany efekt "Nazwa pliku do przetłumaczenia podawana jest w linii poleceń". Niestety szukałem w googlach i nie znalazłem nic co by mi pomogło :(
- Nie wiem jak się zabrać za szyfrowanie, to z czym kombinuje jest w kodzie ale nie wiem czy to ma w ogóle sens bo nie wiem jak przekazać do programu te pliki i parametry.
Ogółem to jest granda wymagać od nas wiedzy i nawet nie podać źródeł skąd ją możemy uzyskać nie mówiąc już o wytłumaczeniu tego...
Proszę o pomoc bo nie wiem jak inaczej to zaliczę :( a nie chce kupować gotowca