Fórum ler um arquivo txt DELPHI #603591
11/07/2019
0
Maria Taisa
Curtir tópico
+ 0Post mais votado
11/07/2019
Você pode usar a classe TStringList, que contém um método chamado LoadFromFile (só passar o caminho do arquivo), ele vai te retornar uma lista com todas as linhas desse arquivo, depois como você disse o ESPAÇO EM BRANCO está presentes em cada número da sua matriz, você usa a função SPLIT (que nada mais SEPARA a linha a cada ESPAÇO, transformando em um Array<String>), depois só percorrer o array que sobrou e adicionar no seu StringGrid.
Abaixo está o código que pode ajudar:
P.S: Não cheguei a testar complemente o código com um arquivo de texto e tals, mas a sintaxe ta correta.
procedure OpenAndReadFile(const AFilePath: UnicodeString);
var
Loop: Integer;
StringList: TStringList;
ArrayStr: TArray<String>;
I: Integer;
begin
StringList := TStringList.Create;
try
StringList.LoadFromFile(AFilePath);
for Loop := 0 to StringList.Count - 1 do
begin
ArrayStr := StringList[Loop].Split([' ']);
for I := Low(ArrayStr) to High(ArrayStr) do
begin
StringGrid.Cell[Loop, I] := ArrayStr[I];
end;
end;
finally
FreeAndNil(StringList);
end;
Rafael Bosco
Gostei + 1
Mais Posts
11/07/2019
Emerson Nascimento
Gostei + 0
11/07/2019
Maria Taisa
o arquivo vai conter uma matriz como essa por exemplo
2 2 2
0 1 2
3 1 0
eu não irei alterar o arquivo, será somente leitura, no caso eu queria saber como fazer para colocar
cada caractere que tem no arquivo no stringGrind.cell[j,i] := string; e como ignorar os espaços em branco.
o resultado que quero é a matriz do arquivo preencher o stringGrind.
Desde já agradeço.
Gostei + 0
11/07/2019
Maria Taisa
Gostei + 0
12/07/2019
Maria Taisa
Você pode usar a classe TStringList, que contém um método chamado LoadFromFile (só passar o caminho do arquivo), ele vai te retornar uma lista com todas as linhas desse arquivo, depois como você disse o ESPAÇO EM BRANCO está presentes em cada número da sua matriz, você usa a função SPLIT (que nada mais SEPARA a linha a cada ESPAÇO, transformando em um Array<String>), depois só percorrer o array que sobrou e adicionar no seu StringGrid.
Abaixo está o código que pode ajudar:
P.S: Não cheguei a testar complemente o código com um arquivo de texto e tals, mas a sintaxe ta correta.
procedure OpenAndReadFile(const AFilePath: UnicodeString);
var
Loop: Integer;
StringList: TStringList;
ArrayStr: TArray<String>;
I: Integer;
begin
StringList := TStringList.Create;
try
StringList.LoadFromFile(AFilePath);
for Loop := 0 to StringList.Count - 1 do
begin
ArrayStr := StringList[Loop].Split([' ']);
for I := Low(ArrayStr) to High(ArrayStr) do
begin
StringGrid.Cell[Loop, I] := ArrayStr[I];
end;
end;
finally
FreeAndNil(StringList);
end;
Muito Obrigada Rafael, deu certo.
Gostei + 0
12/07/2019
Maria Taisa
Você pode usar a classe TStringList, que contém um método chamado LoadFromFile (só passar o caminho do arquivo), ele vai te retornar uma lista com todas as linhas desse arquivo, depois como você disse o ESPAÇO EM BRANCO está presentes em cada número da sua matriz, você usa a função SPLIT (que nada mais SEPARA a linha a cada ESPAÇO, transformando em um Array<String>), depois só percorrer o array que sobrou e adicionar no seu StringGrid.
Abaixo está o código que pode ajudar:
P.S: Não cheguei a testar complemente o código com um arquivo de texto e tals, mas a sintaxe ta correta.
procedure OpenAndReadFile(const AFilePath: UnicodeString);
var
Loop: Integer;
StringList: TStringList;
ArrayStr: TArray<String>;
I: Integer;
begin
StringList := TStringList.Create;
try
StringList.LoadFromFile(AFilePath);
for Loop := 0 to StringList.Count - 1 do
begin
ArrayStr := StringList[Loop].Split([' ']);
for I := Low(ArrayStr) to High(ArrayStr) do
begin
StringGrid.Cell[Loop, I] := ArrayStr[I];
end;
end;
finally
FreeAndNil(StringList);
end;
Muito Obrigada Rafael, deu certo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)