我知道notepad保存文件时是有编码选项的,memo如何做到呢。谢谢。
解决方案 »
- delphi 如何在TreeView上添加Checkbox
- 谁有这样的时间控件,我想做一个时间轴的控件,就是把一段时间如(两个月)的时间以时间轴显示,类似Project管理中的一样。不知道有没有现
- 超级终端发短信的问题nokia8250
- delphi和触发器
- 有一个字符串,中间以逗号“,”分开,比如aaa,bbb,ccc我怎么能把aaa和bbb和ccc分别单独提取出来
- delphi7+dbgrideh4 在win7下dbgrideh标题栏是黑色的,怎么修改
- 谁用过WINEDT?
- 被封杀了,怎么办?
- delphi中动态数组的问题
- 这几句代码是什么意思?
- 如何将webbrowser 中的内容保存为Excel文件呀?
- 任务栏上自绘按钮的视觉样式
S:UTF8String;
F:TextFile;
begin
S:=UTF8Encode(Memo1.Text);
AssignFile(F, 'C:\test.txt');
Rewrite(F);
Write(F,#$EF+#$BB+#$BF); //UTF8标记
Write(F,S);
CloseFile(F);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
W: WideString;
begin
if Memo1.Text = '' then Exit; //存
with TMemoryStream.Create do try
S := #$FF#$FE;
Write(S[1], Length(S));
W := Memo1.Text;
Write(W[1], Length(W) * SizeOf(WideChar));
Position := 0;
SaveToFile('c:\temp\temp.txt');
finally
Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
S: string;
W: WideString;
begin //取
if not FileExists('c:\temp\temp.txt') then Exit;
with TMemoryStream.Create do try
LoadFromFile('c:\temp\temp.txt');
if Size < 4 then Exit;
SetLength(S, 2);
Read(S[1], Length(S));
if Copy(S, 1, 2) <> #$FF#$FE then Exit;
SetLength(W, (Size - 2) div SizeOf(WideChar));
Read(W[1], Length(W) * SizeOf(WideChar));
Memo2.Text := W;
finally
Free;
end;
end;
//Utf8存、取
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin //存
with TMemoryStream.Create do try
S := #$EF#$BB#$BF;
Write(S[1], Length(S));
S := AnsiToUtf8(Memo1.Text);
Write(S[1], Length(S));
Position := 0;
SaveToFile('c:\temp\temp.txt');
finally
Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);var S: string;
begin //取
if not FileExists('c:\temp\temp.txt') then Exit;
with TMemoryStream.Create do try
LoadFromFile('c:\temp\temp.txt');
SetLength(S, Size);
Read(S[1], Length(S));
if Copy(S, 1, 3) <> #$EF#$BB#$BF then Exit;
Memo2.Text := Utf8ToAnsi(Copy(S, 4, MaxInt));
finally
Free;
end;
end;
Memo1.Lines.SaveToStream(stream, TEncoding.UTF8);