Avatar billede hestetoften Nybegynder
23. marts 2004 - 23:47 Der er 3 kommentarer og
2 løsninger

Finde et ledigt tal ?

Jeg har en ini fil med flg.:

[CusSet]
0=nr1
1=nr2
3=nr4
4=nr5

hvordan finder jeg frem til første ledige nummer, startende fra 0.

I dette tilfælde vil det være 2
hvis linien:
2=nr3
havde været der ville første ledige tal være 5 !

Hvordan finder jeg dette?
Er der en der kan hjælpe ?
Avatar billede borrisholt Novice
23. marts 2004 - 23:57 #1
Lasvære med at brug TInifile ... Lav dit eget filformat, med rigtige objecter du streamer ud på din HD !

Jens B
Avatar billede hreiff Nybegynder
24. marts 2004 - 15:00 #2
Her er noget der læser en ini-fil og finder første ledige tal.
Formen indeholder 1 button, 1 Editbox og 2 listbox'e.
Husk inifiles under uses.

procedure TForm1.Button1Click(Sender: TObject);
var
ini : TInifile;
i:integer;
begin
  ini := TIniFile.Create('C:\test.ini');  {ini-filen der læses fra }
  ini.ReadSection('CusSet', Listbox1.items);  {læser kun det før = }
  ini.ReadSectionValues('CusSet', Listbox2.items);  {læser hele linjen - eks.}
  i := 0;                                         
  while i <= Listbox1.items.count do
  begin
    If (i <> StrToInt(Listbox1.items[i])) then
    begin
      Edit1.text := 'Første ledige nr er: '+IntToStr(i);
      Break;
    end;
    inc(i);
  end;
  ini.Free;
end;
Avatar billede hreiff Nybegynder
24. marts 2004 - 15:02 #3
Du kan naturligvis bruge en TStringList i stedet for listbox'en hvis du ikke skal se indholdet af ini-filen.
Avatar billede athlon-pascal Juniormester
24. marts 2004 - 15:53 #4
Hvorfor hive det over i en TStringList, når det kan gøres nemmere uden?

uses
  IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
var
  IniFile: TIniFile;
  I: Integer;
begin
  IniFile := TIniFile.Create('c:\test.ini');
  try
    I := 0;
    while IniFile.ValueExists('CusSet', IntToStr(I)) do
      Inc(I);
    ShowMessage(IntToStr(I) + ' findes ikke!');
  finally
    IniFile.Free;
  end;
end;
Avatar billede hestetoften Nybegynder
24. marts 2004 - 20:36 #5
I får begge point, men det var athlon-pascal's svar der var lige det jeg søgte...

Tak til begge to
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester