Avatar billede ncp Nybegynder
19. maj 2002 - 12:19 Der er 5 kommentarer og
2 løsninger

tæl antal info i ini-fil

Hey, jeg har denne kode

MyIniFile.ReadString('TEST','T1','');

som henter T1 under [TEST] - men tæller jeg hvormange punkter der er under [TEST] - da der kan være flere T'ere, f.eks. T2, T3 som også skal hentes...
Avatar billede hermandsen Juniormester
19. maj 2002 - 12:33 #1
Lav en streng der angiver hvor mange T* du har...

MyIniFile.WriteInteger('TEST','Antal', 17);

for I := 1 to MyIniFile.ReadInteger('TEST', 'Antal', 0) do
  ReadString('TEST', T+IntToStr(I), '');

//hermandsen
Avatar billede ncp Nybegynder
19. maj 2002 - 12:38 #2
Det tænkte jeg på, men man kan ikke få den selv til at tælle ?
Avatar billede hermandsen Juniormester
19. maj 2002 - 13:01 #3
Jooooh, du kan vel lave din egen TIniFile-klasse med nogle ekstra funktioner, men lige hvordan, det ved jeg sgu ikke... Så skal du nok selv til at styre aflæsningen af filen... Der skal du bruge:

var
  F: TextFile;
  S, Ident: String;
  Tal, Code: Integer;
begin
  AssignFile(F, ExtractFilePath(Application.ExeName) + 'IniFil.ini');
  Reset(F);
  while not Eof do
  begin
    ReadLn(F, S);
    Ident := Copy(S, 1, Pos('=', S)-1);
    if Ident[1] = 'T' then
    begin
      Ident := Copy(Ident, 2, Length(Ident));
      Val(Ident, Tal, Code);
      if Code = 0 then
        ShowMessage('Vi har fundet streng: '+IntToStr(Tal));
    end;
  end; 
end;

//hermandsen
Avatar billede martinlind Nybegynder
19. maj 2002 - 13:42 #4
Hvorfor ikke sådan

-------
Reads all the key names from a specified section of an INI file into a string list.

procedure ReadSection (const Section: string; Strings: TStrings); override;

Description

Call ReadSection to retrieve the names of all keys within a specified section of an INI file into a string list object.

Section identifies the section from which to retrieve a list of key names. Strings specifies the string object to hold the retrieved names. Strings can point to a TString object such as a string list, or to a component property, such as Items for a TListBox component, that is a TString object itself.

------
så er det bare at løbe gennem den TStringList du har læst ind i

/Martin
Avatar billede ncp Nybegynder
19. maj 2002 - 13:50 #5
martinlind > hvordan bruges ReadSection ? Er ikke så meget inde i delphi...
Avatar billede martinlind Nybegynder
19. maj 2002 - 13:57 #6
VAR
  T : TIniFile;
  L : TStringList;
  Cnt : Integer;
begin
  L := TStringList.Create;
  T := TIniFile.Create('MyIniFileName');
  T.ReadSection('Test',L);
  T.Free;
  for Cnt := 0 to L.Count-1 do
  begin
      if Pos('T',L[Cnt]) = 1 then
      begin
        // Lave noget kode her
        // L[Cnt] indeholder 'T*'
      end;
  end;
  L.Free;
end;

/MArtin
Avatar billede ncp Nybegynder
19. maj 2002 - 14:07 #7
ok, brugte lidt fra begge to - så nu virker det sq!

tak...
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