Laik 1 praca

0

Witam. Jestem poczatkujacym "programista" i mam problem w napisaniu programu, ktory odczytuje z biezacego katalogu plik tekstwy(np:dane.txt). Zakladajac ze plik sklada sie z 20 wierszy ,a w kazdym wierszu jest 60 znakow. I chcialbym zeby mi wyswietalo srednia liczbe znwokow w wiwerszu :ogolem, liter, cyfr i spacji. Bylbym bardzo wdzieczny za pomoc. pozdrawiam Czaki

0

mam taki napisany w deliphi. nie czyta tylko sredniej ilosci, ale to nie problem dodac. Pisz na maila

0

Postaram się coś podpowiedzieć, tylko że też jestem początkującym , więc sprawdz to:

procedure czytaj;
var
  f: TekstFile;
  znak : char;
  srednia:integer;
begin
  assignfile(f,'jakis_plik.txt');  //do zmiennej f przypisz plik 'jakis_plik.txt'
  restet(tf)                            //otwórz plik do odczytu;  
  while not(eof) do                   //dopuki plik się nie skończy....
    begin
    repeat                               //powtarzaj...
      read(f,znak);
      i:=i+1;
      memo1.text:=memo1.text+znak;
    until znak<>#13                 //dopuki znak  różny od ENTERA
    srednia:=(i+srednia)/2        //oblicz srednia ilości liter z dotychczasowych wierszy
    i:=0;
    end;
end;

Nawet jak nie zadziała to chyba cały tok rozumowania umieściłem w tej procedurce, dasz radę! :)

0

Anonim masz tam mały bład nie wiem czy ta procedura <ort>w ogóle </ort>bedzie działac bo nie sprawdzałem ale zamiast TekstFile powinno byc TextFile ;-) taki mały drobiazg.

0

Hmm to co napisał Anonim jest kompletnie pozbawione sensu .. nie dość, że kod ma błędy (nie mówię o literówkach) to jeszcze takie działania nic nie robią .. - poza tym - na przyszłość -wczytywanie do memo robi się od razu przez LoadFromFile.. a tak w ogóle to memo tu nie jest do niczego potrzebny.

Po prostu po kolei zliczaj wszystkie litery, znaki, itd (albo operuj na zbiorach, albo sprawdzaj po numerze ASCII).. później jak będziesz miał ilości, to już pestka.

0
Function Licz(Const Name:String):Real;
Var F:TextFile;
    Suma,Ilosc:Integer;
    Linia:String;
Begin
  AssignFile(F,Name);   
  Reset(F);
  Suma:=0;
  Ilosc:=0;
  While Not Eof(F) Do
  Begin
    Readln(F,Linia);
    Inc(Suma,Length(Linia);
    Inc(Ilosc);
  End;
  CloseFile(F);
  Result:=Suma/Ilosc;
End;

1 użytkowników online, w tym zalogowanych: 0, gości: 1