DEPHI zapis/odczyt z pliku + zmiana wielkosci liter

pover
Użytkownik
Użytkownik
Posty: 29
Rejestracja: 23 lut 2007, o 23:06
Płeć: Mężczyzna
Lokalizacja: lublin
Podziękował: 18 razy

DEPHI zapis/odczyt z pliku + zmiana wielkosci liter

Post autor: pover »

Mam do napisania takie oto zadanie:

Zad. 4.1
a) Program czyta kolejne znaki z jednego pliku tekstowego, zamienia małe litery 'a'..'z' na wielkie a wielkie 'A'..'Z' na małe i zapisuje do innego pliku.

b) Program czyta wiersze pliku tekstowego do łańcucha, wywołuje funkcję (parametr:string, zwraca string), która przekształca znaki jak opisano w cz. a) i wypisuje na ekranie numer wiersza oraz przekształcony łańcuch

Jesli ktos nie chce to nie musi mi pisac calego kodu, prosilbym jednak przynajmniej o instukcje jakich trzeba uzyc do zamiany malych liter na wielkie, zapisu/odczytu do pliku itd. Moze wowczas bede potrafil cos z tego skleic...

Pozdrawiam
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

DEPHI zapis/odczyt z pliku + zmiana wielkosci liter

Post autor: smiechowiec »

Zad 1 a

Kod: Zaznacz cały

{Progam ZamianaLiterA;}

var
  fwe : text;
  fwy : text;
  slinia : String;


function zamienlitery(s : string) : string;
var
  i : integer;
begin
  for i := 1 to length(s) do begin
    if ((s[i]) >= 'A') AND ((s[i]) <= 'Z') then
      s[i] := chr ( ord(s[i]) + 32) { lower case }
    else
    if ((s[i]) >= 'a') AND ((s[i]) <= 'z') then
      s[i] := upcase(s[i]);
  end;
  zamienlitery := s;
end;

begin
  If (ParamCount <> 2) then begin
    WriteLn('Prawidlowe wywolanie pliku to');
    WriteLn('pover plikwe plikwy');
    WriteLn('gdzie plikwe nazwa pliku do odczytania');
    WriteLn('a plikwy to nazwa pliku wdo ktorego zostana zapisane dane z zamieninonymi duzymi i malymi literami.');
    Halt(1);  { Zakoncz program }
  end
  else
    WriteLn('Zamiana liter malych i duzych z pliku ', ParamStr(1), ' do pliku ',  ParamStr(1) );


  Assign(fwe, ParamStr(1));
  Assign(fwy, ParamStr(2));


  {$I-} Reset(fwe); {$I+}
  If (IOresult <> 0) then begin
    WriteLn('Nie udalos sie otworzyc pliku wejsciowego');
    Halt(1);  { Zakoncz program }
  end;

  {$I-} Rewrite(fwy); {$I+}
  If (IOresult <> 0) then begin
    WriteLn('Nie udalos sie otworzyc pliku wyjsciowego');
    Halt(1);  { Zakoncz program }
  end;

  while not eof(fwe) do begin
    ReadLn(fwe, slinia);
    WriteLn(fwy, zamienlitery(slinia));
  end;

  Close(fwy);
  Close(fwe);
end.
Zad 1 b

Kod: Zaznacz cały

{Progamm ZamianaLiterB;}

var
  fwe : text;
  slinia : String;
  inrlini : integer;


function zamienlitery(s : string) : string;
var
  i : integer;
begin
  for i := 1 to length(s) do begin
    if ((s[i]) >= 'A') AND ((s[i]) <= 'Z') then
      s[i] := chr ( ord(s[i]) + 32) { lower case }
    else
    if ((s[i]) >= 'a') AND ((s[i]) <= 'z') then
      s[i] := upcase(s[i]);
  end;
  zamienlitery := s;
end;

begin
  If (ParamCount <> 1) then begin
    WriteLn('Prawidlowe wywolanie pliku to');
    WriteLn('pover plikwe');
    WriteLn('gdzie plikwe nazwa pliku do odczytania');
    Halt(1);  { Zakoncz program }
  end
  else
    WriteLn('Zamiana liter malych i duzych z pliku ', ParamStr(1));


  Assign(fwe, ParamStr(1));


  {$I-} Reset(fwe); {$I+}
  If (IOresult <> 0) then begin
    WriteLn('Nie udalos sie otworzyc pliku wejsciowego');
    Halt(1);  { Zakoncz program }
  end;
  inrlini := 0;
  while not eof(fwe) do begin
    ReadLn(fwe, slinia);
    inc(inrlini);
    WriteLn(inrlini, ' ', zamienlitery(slinia));
  end;

  Close(fwe);
end.
pover
Użytkownik
Użytkownik
Posty: 29
Rejestracja: 23 lut 2007, o 23:06
Płeć: Mężczyzna
Lokalizacja: lublin
Podziękował: 18 razy

DEPHI zapis/odczyt z pliku + zmiana wielkosci liter

Post autor: pover »

Coś niezabardzo chca mi dzialac te programy... Jestem kompletnym laikiem i byc moze w zle miejsca wpisuje sciezki dostepu do plikow. Moglbys zmodyfikowac te kody w odpowiednie miejsca wpisujac podane sciezki dostepu?

plik do odczytu:
C:malelitery.txt

plik do zapisu:
C:duzelitery.txt
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

DEPHI zapis/odczyt z pliku + zmiana wielkosci liter

Post autor: smiechowiec »

jeśli używasz darmowego turbo pascla 5.5 to parametry wpisuje się w Menu Run->Parameters
Tam podajesz dwie nazwy plików przedzielone spacją.
A jeżeli chcesz wpisać te nazwy na sztywno to proszę.

Kod: Zaznacz cały

{Progam ZamianaLiterA;}

var
  fwe : text;
  fwy : text;
  slinia : String;


function zamienlitery(s : string) : string;
var
  i : integer;
begin
  for i := 1 to length(s) do begin
    if ((s[i]) >= 'A') AND ((s[i]) <= 'Z') then
      s[i] := chr ( ord(s[i]) + 32) { lower case }
    else
    if ((s[i]) >= 'a') AND ((s[i]) <= 'z') then
      s[i] := upcase(s[i]);
  end;
  zamienlitery := s;
end;

begin
  WriteLn('Zamiana liter malych i duzych z pliku C:\malelitery.txt  do pliku C:\duzelitery.txt' );


  Assign(fwe, 'C:\malelitery.txt');
  Assign(fwy, 'C:\duzelitery.txt');


  {$I-} Reset(fwe); {$I+}
  If (IOresult <> 0) then begin
    WriteLn('Nie udalos sie otworzyc pliku wejsciowego');
    Halt(1);  { Zakoncz program }
  end;

  {$I-} Rewrite(fwy); {$I+}
  If (IOresult <> 0) then begin
    WriteLn('Nie udalos sie otworzyc pliku wyjsciowego');
    Halt(1);  { Zakoncz program }
  end;

  while not eof(fwe) do begin
    ReadLn(fwe, slinia);
    WriteLn(fwy, zamienlitery(slinia));
  end;

  Close(fwy);
  Close(fwe);
end. 
Ostatnio zmieniony 11 lis 2007, o 12:25 przez smiechowiec, łącznie zmieniany 1 raz.
pover
Użytkownik
Użytkownik
Posty: 29
Rejestracja: 23 lut 2007, o 23:06
Płeć: Mężczyzna
Lokalizacja: lublin
Podziękował: 18 razy

DEPHI zapis/odczyt z pliku + zmiana wielkosci liter

Post autor: pover »

Ok, dzieki wielkie, wszystko dziala

A uzywam Turbo Delphi 7...
ODPOWIEDZ