function StrToDFMStr(S: UnicodeString): UnicodeString; var AHelper: TStringBuilder; ps, ls: PWideChar; L: Integer; AQuoterNeeded: Boolean; const LineLength: Integer = 64; begin ps := PWideChar(S); AHelper := TStringBuilder.Create; try L := 0; AHelper.Append(''''); AQuoterNeeded := True; while ps^ <> #0 do begin if AHelper.Length - L > LineLength then begin if AQuoterNeeded then AHelper.Append(''''); AHelper.Append(SLineBreak); L := AHelper.Length; end; if (ps^ >= ' ') and (ps^ <> '''') and (ps^ < #$128) then begin AHelper.Append(ps^); AQuoterNeeded := True; end else begin begin if AQuoterNeeded then AHelper.Append(''''); AHelper.Append('#').Append(Ord(ps^)); AQuoterNeeded := False; end; end; Inc(ps); end; if AQuoterNeeded then AHelper.Append(''''); Result := AHelper.ToString; finally FreeAndNil(AHelper); end; end;