0

我正在开发一个 mp3 发送程序。我正在使用一个列表框来显示一个简单的 mp3 文件名列表(1.mp3、2.mp3、3.mp3 等)和一个连接(ip adress1、ip adress2)所在的复选框。我想知道如何将带有复选框选中项目的列表框项目保存为(链接)?例如,如果我想将 1.mp3 发送到 ipadress1 和 ipadress2,那么 2.mp3、3.mp3 仅用于 ipadress2 等。)我想使用“文件发送”按钮将其保存到一些 txt 文件. 有什么想法吗?感谢您的回答!

procedure TForm1.ListBox1Click(Sender: TObject);
 var
Item : TStringList;
I: Integer;
begin
 if ListBox1.ItemIndex = -1 then
  Exit ;
 if Assigned(ListBox1.Items.Objects[ListBox1.ItemIndex]) then
  Item := ListBox1.Items.Objects[ListBox1.ItemIndex] as TStringList
 else
 begin
   Item := TStringList.Create ;
   ListBox1.Items.Objects[ListBox1.ItemIndex] := Item;
 end ;
for I := 0 to CheckListBox1.Items.Count - 1 do
 CheckListBox1.Checked[I] := False; 
for I := 0 to Item.Count - 1 do
CheckListBox1.Checked[CheckListBox1.Items.IndexOf(Item[I])] := True; 
end;

procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
var
Item : TStringList;
I    : Integer;
begin
if ListBox1.ItemIndex = -1 then
begin
  ShowMessage('Select the mp3 first!');
  Exit ;
  end ;
 if Assigned(ListBox1.Items.Objects[ListBox1.ItemIndex]) then
 Item := ListBox1.Items.Objects[ListBox1.ItemIndex] as TStringList
 else
 begin
  Item := TStringList.Create;
  ListBox1.Items.Objects[ListBox1.ItemIndex] := Item;
end;
Item.Clear;
 for I := 0 to CheckListBox1.Items.Count - 1 do
 if CheckListBox1.Checked[I] then
  Item.Add(CheckListBox1.Items[I]);
end;
4

2 回答 2

2

如果您有一些额外的选项,您可以使用 xml 文件。您可以根据需要添加任意数量的属性。

<Body>
  <F1.mp3 ipaddress1="True" ipaddress2="False"/>
  <F2.mp3 ipaddress1="False" ipaddress2="True"/>
</Body>
于 2012-10-30T11:35:26.353 回答
1

你可以把它保存到ini文件。我认为它符合你的要求。

使用 mp3 文件名作为部分名称,ip 作为名称=值对

[1.mp3]
ip1=1
ip2=1

[2.mp3]
ip2=1
ip4=1
于 2012-10-30T09:44:30.397 回答