在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
// UTF-8文件写入函数 MemStream := TMemoryStream.Create;
try if WriteHeader then begin HeaderStr:=#$EF#$BB#$BF; MemStream.Write(HeaderStr[1], 3); end; S := AnsiToUtf8(S);
MemStream.Write(S[1], Length(S)); MemStream.Position := 0; MemStream.SaveToFile(FileName);
finally MemStream.Free; end; end; // UtF-8文件读取函数 function LoadUTFFile(const FileName: string; ReadHeader: Boolean = True): string; var MemStream: TMemoryStream; S, HeaderStr:string; begin Result:=''; if not FileExists(FileName) then Exit; MemStream := TMemoryStream.Create;
try MemStream.LoadFromFile(FileName); if ReadHeader then begin SetLength(HeaderStr, 3); MemStream.Read(HeaderStr[1], 3); if HeaderStr = #$EF#$BB#$BF then
begin SetLength(S, MemStream.Size - 3); MemStream.Read(S[1], MemStream.Size - 3); end; end else begin SetLength(S, MemStream.Size); MemStream.Read(S[1], MemStream.Size); end; Result := Utf8ToAnsi(S); finally MemStream.Free; end; end; // Unicode文件写入函数 procedure SaveUnicodeFile(const FileName:string; const S: string; WriteHeader: Boolean = True); var MemStream: TMemoryStream; HeaderStr: string; WStr: WideString; begin if S = '' then exit; MemStream := TMemoryStream.Create;
try if WriteHeader then begin HeaderStr := #$FF#$FE; MemStream.Write(HeaderStr[1], 2); end; WStr := WideString(S); MemStream.Write(WStr[1], Length(WStr)*2); MemStream.Position := 0; MemStream.SaveToFile(FileName); finally MemStream.Free; end; end; // Unicode文件读取函数
function LoadUnicodeFile(const FileName: string; ReadHeader: Boolean = True): string; var MemStream: TMemoryStream; FlagStr: String; WStr: WideString; begin Result := ''; if not FileExists(FileName) then Exit; MemStream := TMemoryStream.Create;
try MemStream.LoadFromFile(FileName); if ReadHeader then
begin SetLength(FlagStr, 2); MemStream.Read(FlagStr[1], 2); if FlagStr = #$FF#$FE then begin SetLength(WStr, (MemStream.Size-2) div 2); MemStream.Read(WStr[1], MemStream.Size - 2); end; end else begin SetLength(WStr, MemStream.Size div 2); MemStream.Read(WStr[1], MemStream.Size); end; Result := AnsiString(WStr); finally MemStream.Free; end; end; http://blog.csdn.net/missmecn/article/details/3007964
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论