Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
Delphi 10.4 Sydney
|
AW: ANSI-Unicode das alte Lied mal wieder
4. Jul 2016, 14:04
@Sir Rufo: Genau das dachte ich auch immer. Aber so einfach ist der Spaß anscheinend nicht:
Delphi-Quellcode:
var
F, FTmp, FTarget, FOk, FErr, FErrDesc: TFileName;
Q, Q2: TUniQuery;
SL: TStringList;
sSql, FileContent: string;
Writer: TStreamWriter;
begin
sSql:= 'SELECT * FROM sync_jobs WHERE file_written=0;';
if QuerySQL(sSql, Q) > 0 then begin
while not Q.Eof do begin
F:= Q.FieldByName('filename').AsString;
FTarget:= IncludeTrailingPathDelimiter(FFolderBase) + F;
FileContent:= Q.FieldByName('filecontent').AsString;
FTmp:= TPath.GetTempPath + TPath.GetGUIDFileName;
Writer:= TStreamWriter.Create(FTmp, FALSE, TEncoding.ASCII);
try
Writer.Write(FileContent);
finally
FreeAndNil(Writer);
end;
if TFile.Exists(FTarget) then TFile.Delete(FTarget);
if TFile.Exists(FTmp) and not TFile.Exists(FTarget) then begin
TFile.Move(FTmp, FTarget);
if TFile.Exists(FTarget) then begin
sSql:= Format('UPDATE sync_jobs SET file_written=1 WHERE filename=''%s'' LIMIT 1;', [F]);
ExecuteSQL(sSql, Q2);
end;
end;
Q.Next;
end;
end;
EDIT: Hat sich erledigt. War wohl ne Denkblockade ^^ Lösung: Writer:= TStreamWriter.Create(FTmp, FALSE, TEncoding.ANSI);
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
Geändert von Codehunter ( 4. Jul 2016 um 14:15 Uhr)
|
|
Zitat
|