Fórum Salvar TstringList Fazer os arquivos em formato Unix(Linux) e nao DOS(Windows) #5056
27/04/2009
0
var
i,Registro :integer;
sl: TStringList;
st,Tipo: string;
Mascara : Array [0..100] of string;
begin
DataSet.First;
sl := TStringList.Create;
try
st := '';
for i := 0 to DataSet.Fields.Count - 1 do
st := st + DataSet.Fields[i].DisplayLabel + ';';
if Cabecalho then
sl.Add(st);
DataSet.First;
for i := 0 to DataSetAux.RecordCount - 1 do
begin
Mascara[i] := Trim(DataSetAux.FieldByName('MASCARA').AsSTring);
DataSetAux.Next;
end; Separador := Separadores(Separador);
Registro := 0;
while not DataSet.Eof do
begin
Inc(Registro); st := '';
for i := 0 to DataSet.Fields.Count - 1 do
begin Tipo := Mascara[i]; if i = DataSet.Fields.Count - 1 then
st := st + FormatString(Trim(DataSet.Fields[i].DisplayText),Tipo) + FimLinha
else
st := st + FormatString(Trim(DataSet.Fields[i].DisplayText),Tipo) + Separador; end;
sl.Add(st);
DataSet.Next;
end;
sl.SaveToFile(Arq);
finally
begin
if not DataSet.eof then
msg := 'Registro :' + InttoStr(Registro) + ' Coluna :' + Inttostr(i) + ' Conteudo :'+ DataSet.Fields[i].DisplayText;
sl.SaveToFile(Arq);
sl.free; end;
end;
end; Delphi 7 Att.. Ricardo Horoi
Frigorifico Sa
Curtir tópico
+ 0Posts
27/04/2009
Rodrigo Mourão
Poderia me informar qual o enconding utilizado que deseja gerar o arquivo ???
O padrão dos arquivos windows e ANSI, porém isso pode variar no UNIX (me corrija se estiver errado).
Algumas codificações possíveis são:
UTF-8
UNICODE
UNICODE BIG ENDIAN
ETC.
Fico no aguardo !!!
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
27/04/2009
Frigorifico Sa
Gostei + 0
27/04/2009
Rodrigo Mourão
Bem acredito que seja UTF-8 sendo assim já me antecido com um código que possa lhe ajudar.
procedure SalvaUTF8(const FileName:String; Content: TStrings);
const
constUTF8 = $BFBBEF;
var
FileUTF8: UTF8String;
FS: TFileStream;
Byte: Integer;
begin
if TRIM(Content.Text) <> '' then
begin
FileUTF8:= Content.Text;
FS:= Tfilestream.create(FileName, fmCreate );
try
Byte := constUTF8;
FS.WriteBUffer( Byte, sizeof(Byte)-1);
FS.WriteBuffer( FileUTF8[1], Length(FileUTF8)*Sizeof( FileUTF8[1] ));
finally
FS.free
end;
end;
end;
Esta procedure recebe um parametro que é o caminho onde quer salvar o arquivo convertido e outro que é o conteúdo que você quer converter. Repare que você terá que passar o conteúdo num TString. Um Exemplo de uso seria:
procedure TForm1.Button1Click(Sender: TObject);
var
F: TStringList;
begin
F := TStringList.Create;
F.LoadFromFile('C:\ArquivoNoFormatoWindows.txt');
SalvaUTF8('C:\ArquivoConvertidoParaUtf-8.txt',F);
FreeAndNil(F);
end;
Caso o enconding seja outro favor me avisar !!
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
28/04/2009
Frigorifico Sa
Gostei + 0
28/04/2009
Rodrigo Mourão
Bem não conheçp este tipo de codificação, acredito que os arquivos unix usem umas das codificações de arquivo padronizadas.
Teste com o código abaixo e me informe o resultado. Ficarei no aguardo !!!
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
28/04/2009
Frigorifico Sa
Gostei + 0
29/04/2009
Rodrigo Mourão
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
30/04/2009
Frigorifico Sa
Gostei + 0
30/04/2009
Rodrigo Mourão
Fica tranquilo, estaremos aguardando !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
05/05/2009
Devmedia
podemos encerrar o chamado?
Gostei + 0
06/05/2009
Frigorifico Sa
Gostei + 0
07/05/2009
Devmedia
esse chgamado será colocado como concluído, mas assim que estiver novas dúvidas sobre o assunto desse chamado, pode posta-las que o consultor lhe atenderá.
Att.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)