Aew xará, eh o seguinte... no seu caso, acho que utilizar um array com o numero de elementos atuais no arquivo INI seria apenas um uso de memória a toa, pois como seu programa vai funcionar em rede, varias pessoas vão acessar esse mesmo INI, pelo menos eu acho que sim, certo?
Se várias pessoas podem escrever nesse INI, pensa comigo...
Vamos dizer que você tenha você e um amigo seu mexenu no programa, você insere 3 registros, logo, seu array assume 3 elementos, certo? agora o seu amigo insere mais 2 registros... no seu computador, seu array seria 3 ateh você tentar ler o arquivo INI novamente, no PC dele talvez o Array de controle esteja contando 5 elementos ou somente 2, nom sei de qual modo você fez, por isso nom posso afirmar com certeza...
Dessa forma, você realmente teria que fazer uma verificação antes de inserir um número, agora vamos pensar, pra q um array de controle se você tem um campo ID guardando o total de registros? o.o''
esse campo ID é a chave de tudo kra, com ele você pode descartah esse array de controle aew... eu fiz aki um teste, e vi que talvez essa fosse a melhor forma, nada de array de controle.
agora na hora de inserir um campo, faz o seguinte:
var
ArqIni: TIniFile;
RegAtual: Integer;
label Exists;
begin
ArqIni := TIniFile.Create('arquivo.ini');
ArqIni.UpdateFile;
RegAtual := ArqIni.ReadInteger('RegistroAtual', 'ID', 1);
Exists:
if not ArqIni.ValueExists('Numero', IntToStr(RegAtual + 1)) then
begin
RegAtual := RegAtual + 1;
ArqIni.WriteString('Numero', IntToStr(RegAtual), IntToStr(2000 + RegAtual));
ArqIni.WriteInteger('RegistroAtual', 'ID', RegAtual);
Caption := IntToStr(RegAtual);
end else
begin
RegAtual := RegAtual + 1;
goto Exists;
end;
ArqIni.Free;
end;
Bom, esse foi meu modo de pensar até onde entendi o seu programa, posso ateh teh falado alguma besteira ali em cima por desconhecer o modo como o tal foi feito... agora como não sei exatamente o que você quer fazeh e o modo que você goxta de trabalhar, vou colocar aki tbm o que você quer saber:
Como eu faço essa verificação?Se você estiver querendo verificar direto dentro do arquivo INI, você pode usar o método:
ValueExists(const Section, Ident: string): Boolean, retorna TRUE se o valor jah for existente e FALSE caso seja inexistente
Agora, se você pretende utilizar o array e deseja verificar se existe um determinado valor dentro dele, o negócio complica, não conheço uma função que faça issow, peraew ki vou procurah aki... >_<
Sei lah kra, nom achei nada que te retorne a posição de um elemento de um array caso ele exista ç_ç
mas pode seh feito uma função ke faça issow, eh moleza... si tu nom soubeh, tu fala ki qnd eu tiveh tempu, montu uma...
Agora, como você deve ter imaginado, seu array nom pode teh um tamanho jah definido de elementos, teria que ser um array dinamico, tipo:
var
valores: array of string;
ou
valores: array of integer
Dessa forma, o array fica flexivel, assim você podi fazeh cum ke ele assuma 1000 valores, ou somente um valor apenas, você controla o tamanho dele, a função
SetLength() faix issow
Gaaaaaaah... essa msg jah tah grandi pra kct >_<
falooooows, esperu teh ajudadu em alguma coisa, kualker coisa, posta aew....