Код:
procedure ParseTextFile(AFileName : String; ACombo : TComboBox);
var
I : Integer;
Buf : String;
Lst : TStringList;
begin
If ACombo = Nil Then Raise Exception.Create('No ComboBox passed.');
If Not FileExists(AFileName) Then Raise Exception.Create('File doesn''t exists!');
ACombo.Items.Clear;
Lst := TStringList.Create;
Try
Lst.LoadFromFile(AFileName);
For I := 0 to Lst.Count-1 Do
Begin
If Pos(':',Lst[i]) <> 0
Then
Begin
Buf := StringReplace(Lst[i],':',' - ',[]);
ACombo.Items.Add(Buf);
End
Else
ShowMessage(Format('Skipped line %d : %s',[I,Lst[i]]));
End;
Finally
Lst.Free;
End;
end;
1. Сделано только простое преобразование строки. Без разбора. Если нужен именно разбор, то то место, где StringRelpace надо заменить на что-то типа:
Код:
var
SepPos : Integer;
UserName, Password : String;
begin
SepPos := Pos(':',Lst[i]);
UserName := Copy(Lst[i],1,SepPos-1);
Passwrod := Copy(Lst[i],SepPos+1,Length(Lst[i])-SepPos+1);
end;
2. A вообще, такие вещи лучше хранить в xml. И читать удобнее (глазами), и править руками и парсить проще (исп. компонент TXMLDocument).