' јЅ¬√ƒ≈®∆«»… ЋћЌ0ѕ--“”‘’÷„111ўЏџ№Ёёяє' ; KOIR: string = 'Ѕ¬„«ƒ≈ ЋƒЏ… ЋћЌќѕ-“”‘’∆»√ёџЁяўЎ№ј-' +

'бвчзде1цъйклмнопртуфхж»гюыэ¤щшьас?'; KOIU: string = 'Ѕ¬„«ƒ≈ ЋƒЏ… ЋћЌќѕ-“”‘’∆»√ёџЁяўЎ№ј-' +

' бвчзде1цъй<клмнопртуфхжигюыэ¤щшьас? ' ; ISO: string = ' --“”‘’с÷„ЎўЏџ№Ёёяабвгдежзийклмноп+

' °±11√и”^-Єєе'^«з1јЅ¬√ƒ≈∆«»…ё∆Ќ0ѕр' ;
function Convert(const S, Langl, Lang2: string): string;
var i, p: integer;
begin Result:=S;
for i:=l to Length(S) do begin p := Pos (S[i],Langl);
if p >
0 then Result[i] := Lang2[p];
end;
end;

procedure TForml.BFilelClick(Sender: TObject); begin

if OpenDialogl.Execute

then Editl.Text := OpenDialogl.FileName;
end;

procedure TForml.BFile2Click(Sender: TObject); begin

if SaveDialogl.Execute

then Edit2.Text := SaveDialogl.FileName;
end;
procedure TForml.BConvertClick(Sender: TObject);
var S, Langl, Lang2: string;
RichEdit: TRichEdit;
SW: StreamWriter;
SR: StreamReader;
SB: StringBuilder;
SCodel, SCode2: String;

i: Integers-begin

if (Editl.Text = Edit2.Text) then begin

Application.MessageBox(^»сходный ‘айл - ' + Editl.Text + #13'-езультирующий файл - 1 + Edit2.Text + #13'ќни должны быть разными', '‘айлы должны быть разными',MB_ICONSTOP);

exits-end; try

SR := StreamReader.Create(Editl.Text, Encoding.Default); S := SR.ReadToEnd; SR.Close; except

Application.MessageBox('‘айл "' + Editl.Text +

'"
не может быть открыт', 'Ќет доступа к файлу',MB_ICONSTOP);
exit;
end;

if FileExists(Edit2.Text) then

if Application.MessageBox('‘айл "' + Edit2.Text + '"
существует. «аменить его?', 'ѕодтвердите замену',MB_ICONQUESTION + MB_OKCANCEL) IDOK then exit;

try

SW := StreamWriter.Create(Edit2.Text, false, Encoding.Default); SW.Write(''); SW.Close; except

Application.MessageBox('‘айл "' + Edit2.Text +

'"
не может быть создан дл¤ записи', 'Ќет доступа к файлу1,MB_ICONSTOP);

exit ; ends-Screen. Cursor := crHourGlass; case RadioGroupl.Itemlndex of

0, 1, 2: Langl := WIN;
3: Langl := KOIR;
4: Langl := KOIU;
5: Langl := ISO;

end^-case RadioGroup2.Itemlndex of

0, 1, 2: Lang2 := WIN;
3: Lang2 := KOIR;
4: Lang2 := KOIU;
5: Lang2 := ISCend;

if (RadioGroupl.Itemlndex < 2) or (RadioGroup2.Itemlndex < 2) // случай, когда входной или выходной формат RTF или MS DOS then begin

RichEdit := TRichEdit.Create(Forml);
RichEdit.Visible := false;
RichEdit.Parent := Forml;

RichEdit.PlainText := (RadioGroupl.Itemlndex > 1); RichEdit.Lines.LoadFromFile(Editl.Text) ; if (RadioGroupl.Itemlndex = 1)

// перевод MS DOS в обычный текст (см. разд. 5.7.2)

then begin

SB := StringBuilder.Create(Length(RichEdit.Text) * 2);
OemToChar(RichEdit.Text, SB);
S := SB.ToString;
SCodel := #13#10;
OemToChar(SCodel, SB);
SCode2 := SB.ToString;
i := Pos(SCode2, S);

while i > 0 do

begin

S := Copy(S, 1, i-1) + SCodel +

Copy(S, i + Length(SCodel), 1000);
i := Pos(SCode2, S);
end;
RichEdit.Text := S;
end;

// перевод из одной кодировки в другую if Langl Lang2

then RichEdit.Text := Convert(RichEdit.Text, Langl, Lang2);

if (RadioGroup2.Itemlndex = 1)


⇐ ѕредыдуща¤ страница| |-ледующа¤ страница ⇒

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Май
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс