![]() |
|
|
#1
|
|||
|
|||
|
пожалуйста,кто разбирается в процедурах и функциях,помогите доделать программу,которая заменяет строчные латинские буквы на прописные.
нужно сделать так,чтобы не портились исходные данные и выводились исходные данные и результат в файл. с вводом из файла вроде получилось ввод,вывод и обработку осуществлять в процедурах и функциях вот что сделал: Код:
var st,s:string; procedure vvodstr(var st:string); fin:TextFile; begin AssignFile(fin,'File1.txt'); Reset(fin); readln(fin,st); CloseFile(fin); end; function zamena(st:string):integer; var s:string; i: byte; begin for i:=1 to length(st) do s[i]:=UpCase(st[i]); end; procedure vivodres(s:string); var i: byte; fout:TextFile; begin AssignFile(fout,'File2.txt'); Rewrite(fout); for i:=1 to length(st) do writeln(fout,'Rezultat: ',s[i]); CloseFile(fout); end; begin vvodstr(st); zamena(st); vivodres(s); end. Последний раз редактировалось trangle, 18.12.2015 в 23:46. |
|
#2
|
|||
|
|||
|
Код:
uses Classes;
var
sl : TStringList;
i : integer;
s : String;
begin
sl := TSTringList.Create;
sl.LoadFromFile('File1.txt');
s := sl.Text;
For i := 1 To Length(s) Do
If s[i] in ['a'..'z'] Then
s[i] := chr(ord('A') + ord(s[i]) - ord('a'));
sl.Text := s;
sl.SaveTofile('File2.txt');
sl.Free;
end;А то у тебя вообще какая-то ересь написана, полная путаница в именах параметров и переменных, отсутсвует функция UpCase, использованная в коде и т.д. |
|
#3
|
|||
|
|||
|
Цитата:
Моя программа работает правильно. Я не очень хорошо знаю процедуры и функции. а с тем,чего я просил,вы мне не помогли |
|
#4
|
|||
|
|||
|
Дык исходные данные и не должны портиться, бо как лежат в др. файле.
типа так: Код:
uses Classes;
var
sl : TStringList;
i : integer;
s : String;
begin
sl := TSTringList.Create;
sl.LoadFromFile('File1.txt');
s := sl.Text;
For i := 1 To Length(s) Do
If s[i] in ['a'..'z'] Then
s[i] := chr(ord('A') + ord(s[i]) - ord('a'));
sl.Add('');
sl.Add('Resultat:');
al.Add(s);
sl.SaveTofile('File2.txt');
sl.Free;
end;тогда выведет в новый файл содержимое старого + измененные данные. Ну а если говорить о твоем коде, то, наверное, должно быть как то так: Код:
var
str_in, str_out : string;
function vvodstr : string;
var
fin : TextFile;
buf : String;
begin
AssignFile(fin,'File1.txt');
Reset(fin);
readln(fin,buf);
CloseFile(fin);
Result := buf;
end;
function zamena(s:string):string;
var
i : integer;
begin
Result := s;
for i:=1 to length(Result) do
Result[i]:=UpCase(Result[i]);
end;
procedure vivodres(str_old, str_new : string);
var
I : Integer;
fout : TextFile;
begin
AssignFile(fout,'File2.txt');
Rewrite(fout);
writeln(fout,'in out');
writeln(fout,'-- ---');
for i:=1 to length(str_old) do
writeln(fout,str_old[i]+' '+str_new[i]);
CloseFile(fout);
end;
begin
str_in := vvodstr;
str_out := zamena(str_in);
vivodres(str_in,str_out);
end. |
|
#5
|
|||
|
|||
|
AnsiUpperCase нельзя что ли использовать?
|