Divisão de TStringList
Eu tô fazendo manipulção para jogar números em um txt e depois somar os números contido ali
Me dêem uma ajuda aqui com esse código
if FileExists(Edit1.Text + '.txt') then
begin
verifica := true;
end else
begin
ShowMessage(Edit1.Text + ' não cadastrado!');
end;
if verifica = true then
begin
AssignFile(arquivo, Edit1.Text + '.txt');
Append(arquivo);
Reset(arquivo); //abre o arquivo para leitura;
Read(arquivo,leitor);
campo := TStringList.Create;
try
Split(' ', leitor, campo);
finally
// verifica
if ((campo[0] = Edit1.Text) and (campo[1] = Edit2.Text)) then
begin
Form2.Close;
end;
end;
end;
Closefile(arquivo);
end;
Como eu sei quantos (vetores array) campo no caso do código é criado
tipo neste txt que tem o nome de Ewerton.txt tá assim
Ewerton 123
campo nome e senha
ai confere nome e senha e libera o acesso beleza
mais agora eu quero inserir números depois disto?
Como eu vou saber quantos campos foram divididos
ex.
campo[0]
campo[1]
campo[2]
campo[3]
quantos têm?
para saber até onde somar a lista de Strings ?
grato destde Já
Me dêem uma ajuda aqui com esse código
if FileExists(Edit1.Text + '.txt') then
begin
verifica := true;
end else
begin
ShowMessage(Edit1.Text + ' não cadastrado!');
end;
if verifica = true then
begin
AssignFile(arquivo, Edit1.Text + '.txt');
Append(arquivo);
Reset(arquivo); //abre o arquivo para leitura;
Read(arquivo,leitor);
campo := TStringList.Create;
try
Split(' ', leitor, campo);
finally
// verifica
if ((campo[0] = Edit1.Text) and (campo[1] = Edit2.Text)) then
begin
Form2.Close;
end;
end;
end;
Closefile(arquivo);
end;
Como eu sei quantos (vetores array) campo no caso do código é criado
tipo neste txt que tem o nome de Ewerton.txt tá assim
Ewerton 123
campo nome e senha
ai confere nome e senha e libera o acesso beleza
mais agora eu quero inserir números depois disto?
Como eu vou saber quantos campos foram divididos
ex.
campo[0]
campo[1]
campo[2]
campo[3]
quantos têm?
para saber até onde somar a lista de Strings ?
grato destde Já
Ewerton Rodrigues
Curtidas 0
Respostas
Marco Salles
20/02/2011
Maneira fácil é colocar o Arquivo Num Padrao que o TStrings Possa entender
Por exemplo Arquivo TXT
Nome=Ewerton
Senha=123
Rua=Tal
Cidade=Muriae
Estado=Mg
Telefone=111111
Assim qnd vc carregar o Tstring vc tem acesso a todaas as informações
Exemplo
var campo : TStrings; i:integer; begin if not FileExists(Edit1.Text + '.txt') then begin ShowMessage(Edit1.Text + ' não cadastrado!'); exit; end; campo := TStringList.Create; try campo.LoadFromFile(Edit1.Text+'.txt'); for i := 0 to pred(campo.Count) do showmessage(campo.Names[i]+'='+campo.ValueFromIndex[i]); //Teste ai finally campo.Free; end; end;
GOSTEI 0
Ewerton Rodrigues
20/02/2011
me explique na teoria o que vc fez aqui ???
for i := 0 to pred(campo.Count) do
na verdade quero saber o que vc fez no to pred(campo.count)
Eu já estudei com C++ mas agora tô no Delphi á 1 mês
então quase tudo para mim ta sendo meio que novidade
Vlw
for i := 0 to pred(campo.Count) do
na verdade quero saber o que vc fez no to pred(campo.count)
Eu já estudei com C++ mas agora tô no Delphi á 1 mês
então quase tudo para mim ta sendo meio que novidade
Vlw
GOSTEI 0
Wilson Junior
20/02/2011
O "pred" pega o valor predecesor do valor passado como parâmetro.
Se você tiver incluído 5 registros, o seu Campo.Count será 5, mas para você acessar os registros, você deve começar da posição zero até a posição 4 ( pred(Campo.Count) ).
Espero ter colaborado.
Se você tiver incluído 5 registros, o seu Campo.Count será 5, mas para você acessar os registros, você deve começar da posição zero até a posição 4 ( pred(Campo.Count) ).
Espero ter colaborado.
GOSTEI 0
Ewerton Rodrigues
20/02/2011
E quando se coloca o nome do campo.count é quando vc não sabe quantos registros são???
ex: se eu soubesse que seria 10 registros eu colocaria assim
pred(9)
ex: se eu soubesse que seria 10 registros eu colocaria assim
pred(9)
GOSTEI 0
Marco Salles
20/02/2011
O Pred Retorna o Antecessor de um Tipo Ordinal
E quando se coloca o nome do campo.count é quando vc não sabe quantos registros são???
ex: se eu soubesse que seria 10 registros eu colocaria assim
pred(9)
campo.count não é um Nome .. Count é uma property da TStrings que retona essa quantidade de "linhas" que
o Objeto Campo do Tipo TStrings possui ..
Outros exemplos com o pred
ex: se eu soubesse que seria 10 registros eu colocaria assim
pred(9)
type
MyTipoEnum = (ftUm , ftDois , FtTres);
procedure TForm1.Button1Click(Sender: TObject);
var
tipoEnum:MyTipoEnum;
Tipoboll:Boolean;
TipoNum:Integer;
TipoChar:Char;
begin
TipoNum:=5;
TipoChar:='B';
showmessage(inttostr(TipoNum)+' -> Antecessor = '+inttostr(pred(TipoNum))+sLineBreak+
Tipochar+' -> Antecessor = '+pred(Tipochar));
TipoBoll:=True;
showmessage(inttostr(integer(TipoBoll))+sLineBreak+
inttostr(integer(pred(TipoBoll))));
tipoEnum:=ftDois;
if pred(tipoEnum) = ftUm then
showmessage('retornou o Antecessor');
end;GOSTEI 0