Saber quantas colunas tem um campo memo
31/07/2019
0
2 2 2
3 2 1
consigo pegar a quantidades de linhas usando o memo1.lines.count;
mas não sei como fazer para saber a colunas.
Meu código é esse :
var
arq: TextFile;
numero: string;
linha, coluna:integer;
matriz: array of array of integer; // estou utilizando uma matriz dinamica por isso preciso saber a quantidade de linhas e colunas
begin
linha:=0;
coluna:=0;
Memo1.Lines.LoadFromFile(EDcaminho.Text); // já usei o stringList mas não sabia como contar colunas em um vetor ai tive a ideia de usar o memo
AssignFile(arq,EDcaminho.Text); // TENTEI CONTAR A QUANTIDADE DE COLUNAS ABRINDO E ARQUIVO
reset(arq);
while not EOF(arq) do já usei o EOLN mas causa loop qnd eu utilizo
begin
read(arq,numero);
if numero <> '' then //porém meio que as vezes trava entra no loop e quando roda não conta certo;
inc(coluna);
end;
closefile(arq);
linha:= memo1.Lines.Count;
Edit2.Text:= InttoStr(coluna);
Edit1.Text:= InttoStr(linha);
por favor preciso muito de ajuda!
Maria Taisa
Posts
31/07/2019
Maria Taisa
length()
coloquei length mas retorna o total de caracteres do memo, eu so quero a quantidade de linhas Emerson.
31/07/2019
Maria Taisa
length()
coloquei length mas retorna o total de caracteres do memo, eu so quero a quantidade de linhas Emerson.
ja usei o o memo1.caretPos.X e está me retornando o valor zero;
procedure getMemoLinCol(Memo: TMemo; var lin,col : cardinal);
begin
with Memo do
begin
lin:= Perform(EM_LINEFROMCHAR, SelStart,0);
col:= SelStart - Perform(EM_LINEINDEX, lin,0);
end;
end;
essa função e tbm me retorna 0
31/07/2019
Emerson Nascimento
var arq, itens: TStringList; conteudo: string; linha, linhas, coluna: integer; matriz: array of array of integer; // estou utilizando uma matriz dinâmica por isso preciso saber a quantidade de linhas e colunas begin arq := TStringList.Create; arq.LoadFromFile('c:\\temp\\teste.txt'); //EDcaminho.Text linhas := arq.Count; // configura o numero de linhas da matriz SetLength(matriz, linhas); for linha := 0 to linhas-1 do begin // obtém o conteúdo da linha conteudo := trim(arq[linha]); // cria um 'array' com o conteúdo da linha, utilizando o caractere espaço como separador de elementos itens := TStringList.Create; itens.DelimitedText := conteudo; // configura o numero elementos da linha da matriz SetLength(matriz[linha], itens.Count); // preenche as colunas no array for coluna := 0 to itens.Count-1 do matriz[linha,coluna] := strtoint(itens[coluna]); end; // libera os objetos da memória FreeAndNil(arq); FreeAndNil(itens); // agora que a matriz está pronta, a partir daqui faça o que quiser com ela end;
31/07/2019
Maria Taisa
var arq, itens: TStringList; conteudo: string; linha, linhas, coluna: integer; matriz: array of array of integer; // estou utilizando uma matriz dinâmica por isso preciso saber a quantidade de linhas e colunas begin arq := TStringList.Create; arq.LoadFromFile('c:\\\\temp\\\\teste.txt'); //EDcaminho.Text linhas := arq.Count; // configura o numero de linhas da matriz SetLength(matriz, linhas); for linha := 0 to linhas-1 do begin // obtém o conteúdo da linha conteudo := trim(arq[linha]); // cria um 'array' com o conteúdo da linha, utilizando o caractere espaço como separador de elementos itens := TStringList.Create; itens.DelimitedText := conteudo; // configura o numero elementos da linha da matriz SetLength(matriz[linha], itens.Count); // preenche as colunas no array for coluna := 0 to itens.Count-1 do matriz[linha,coluna] := strtoint(itens[coluna]); end; // libera os objetos da memória FreeAndNil(arq); FreeAndNil(itens); // agora que a matriz está pronta, a partir daqui faça o que quiser com ela end;
MUITOOOOOOOOOOO obrigada funcionou perfeitamente o bom que com esse código eu consigo deixar a quantidade de células dinâmica, de acordo com o tamanho da matriz. muito obrigada mesmo Emerson!
Clique aqui para fazer login e interagir na Comunidade :)