Avatar billede akira911 Nybegynder
14. juli 2002 - 18:13 Der er 8 kommentarer og
1 løsning

Ini fil igen !!

Jeg har lige et lille spørgsmål og det der !!

om det er muligt at kører en ini fil igemmem og få fat i en vis profil navn ??
ala:
[noget]
navn=kurt
[nogetandet]
navn=ole
....
alså man får alt hva der står efter navn= i en combobox !!

Håber i kan hjælpe !!
Avatar billede hermandsen Juniormester
14. juli 2002 - 18:16 #1
Ja da... Laver lige et eksempel, vent lidt! ;)
Avatar billede hermandsen Juniormester
14. juli 2002 - 18:22 #2
procedure GetIdentValues(IniFileName, Ident: String): TStrings;
var
  sl: TStringList;
  I: Integer;
  S: String;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(IniFileName);
  for I := 0 to sl.Count -1 do
  begin
    S := sl.Strings[I];
    if Pos(Ident, S) <> 0 then
      Result := Result + ', ' + Copy(S, Length(Ident)+1, Length(S));
  end;
end;

Når du så skal kalde den, så er det bare:

ComboBox1.Items := GetIdentValues('C:\Delphi\Maaf\min inifil.ini', 'navn');

Det er utestet, så jeg er ikke 100% sikker på det, men det burde være noget i den retning...

Ellers må du lige vente lidt mere, så prøver jeg det lige i gennem! ;)
Avatar billede hermandsen Juniormester
14. juli 2002 - 18:26 #3
At jeg så starter med at skrive det som procedure i stedet for function, og laver en masse lort ved result, det må du lige bære over med... Der kommer en endelig funktion... ;)

Det er bare mig der ikke er helt vågen endnu!
Avatar billede hermandsen Juniormester
14. juli 2002 - 18:28 #4
Færdig!!! :)

function GetIdentValues(IniFileName, Ident: String): TStringList;
var
  sl: TStringList;
  I: Integer;
  S: String;
begin
  Result := TStringList.Create;
  sl := TStringList.Create;
  sl.LoadFromFile(IniFileName);
  for I := 0 to sl.Count -1 do
  begin
    S := sl.Strings[I];
    if Pos(Ident, S) <> 0 then
      Result.Add(Copy(S, Length(Ident)+2, Length(S)));
  end;
end;

//hermandsen
Avatar billede martinlind Nybegynder
14. juli 2002 - 18:37 #5
Er det ikke lige en anelse nemere bare at gøre sådan :

VAR
  L : TIniFiles;
  Sl : TStringList;
begin
  L.ReadSections(Sl);
  // find Sectionen "Hest"
  Sl.IndexOf('Hest');
end;

/Martin
Avatar billede martinlind Nybegynder
14. juli 2002 - 18:38 #6
Og så læser vi lige hvad der står :( ( sorry ! )
Avatar billede hermandsen Juniormester
14. juli 2002 - 18:42 #7
>>martinlind
Giver det ikke næsten det samme?
Så skal du bare køre

function GetIdentValues(...): TStringList
var
  I: Integer
begin
  I := 0;
  while I <> -1 do
  begin
    I := sl.IndexOf('Hest');
    Result.Add(sl.Strings[I]);
    sl.Delete(I);
  end;
end;

Sådan cirka... ;)
Avatar billede hermandsen Juniormester
14. juli 2002 - 18:43 #8
Hehe... Helt i orden...
Din kunne også bruges, bare med en lille modifikation! ;)
Avatar billede akira911 Nybegynder
14. juli 2002 - 19:03 #9
jeg siger tak !!! det virker som jeg ville have det til !!
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