问题是这样,我从XML里读出一批的姓名,个数不知,想暂时放到某个字符串数组里,就像这样str[0]= 'Zhang san'
str[1] = 'Li Si'请问delphi里怎么定义这个str,翻了一下午的google也未搞定,TStringlist什么的试的头都大了,还是过来请教了。
str[1] = 'Li Si'请问delphi里怎么定义这个str,翻了一下午的google也未搞定,TStringlist什么的试的头都大了,还是过来请教了。
解决方案 »
- winsock 控件问题
- TreeView点击'+'怎么加载他的子节点?
- 用DELPHI向SQLSERVER还原了一个数据库,能不能让它不出现在已有的注册中?
- 关于记录指针的问题
- delphi有什么??????????
- 用过delphi中idhttp控件的朋友请进来坐坐!!
- 什么是SDK啊?干吗用的?怎样用?
- [版主]你帮我介绍几个DELPHI水平比我高的,我想请教他们几个问题???我是个初学者
- 我的系统原来数据库为ORACLE8I的(网络版),现在要改为单机版,用什么数据库程序修改最少?
- 如何向注册表中写入二进制文件?
- 数据采集问题
- ASC("ZW,1111,期末余额") 有没有人用过excel这个函数
str: array [0..1] of string;
var
Str: TStrings;
i: integer;
begin
Str := TStringList.Create;
for i := 1 to 100 do // 假如,有100个字串
Str.Add(IntToStr(i));
Str.Free;
end;
// 下面是读出 TStrings 里第11个的内容
ShowMessage(Str.Strings[10]);
o: Olevariant;
o.value := str.Strings[0]? (这样好象不行)
好久没发过了,哎
代码如下:var
lstStr: TStringList;
I: integer;
begin
lstStr:= nil;
try
lstStr := TStringList.Create;
for I := 0 to XXX.ChildNodes.Count - 1 do //节点名你可以自己写
begin
lstStr.Add(XXX.ChildNodes[i].Text); //写入字符串
//读取是这样的
ShowMessage(lstStr.Strings[i]);
end;
finally
FreeAndNil(lstStr);
end;
end;自己手动写的,没有测试,原理是这样的.呵呵,你试试!
代码可以按照下面的来写procedure TForm1.Button1Click(Sender: TObject);
var
o: Olevariant;
begin
o := 'asdasd';
ShowMessage('asdasdad');
end;可见,字符串可以直接给可变类型赋值
另外,delphi中还有这样一句:
if a variant containing an AnsiString is assigned to an OleVariant,
the AnsiString becomes a WideString.
The same is true when passing a Variant to an OleVariant function parameter
另外,顺便问一句,你是不是在做多层?
ShowMessage(o);
这样才能证明可以直接赋值,是可以执行的.CSDN居然不让我改自己的帖子.晕!
var str:tstrings;2、
var str array of string-----------
str.Strings[0] := 'Zhang San'?
这样赋值肯定是错误的,你确定Stringlist里的第一个object被初始化过了?
如果是stringlist,自然要用add方法如果是数组方式实现,要保证索引在数组范围之内,如果越界,要有相应的处理
var s:array of string;
SetLength(s,count);//count,先取得xml节点处理获得姓名个数
s[0]:='Zhang san';
...
或者
var list:Tstringlist;
begin
List := TStringList.Create;
List.Add('Zhang san');
...
list[0] //得到值Zhang san
list[1]
...