集合,char、string,最基础的问题(50分)

D

dlnew

Unregistered / Unconfirmed
GUEST, unregistred user!
1.我有一个集合,包含的元素有'a','asldk','hgeo','asdjk',每一项元素都是不确定字符的
不确定个数的组合。问题是如何声明这个集合?
2.在编程时,经常碰到要用char类型参数,而tedit,tcombobox等输入的数据都是string型的,
如何把string的值转化成char型?
 
1.没有字符串集合,得想其他办法
2.按照string的方式访问
 
1.用数组代替集合 array of string
2.同上:
for i:=1 to length(astring) do
achar:=astring;
 
有一个变量的值在 'a','asldk','hgeo','asdjk' 这中,
我想用 in 语句来写,
但 in 后面跟的必需是集合,
怎么办?
 
用StringList.IndexOf
 
dlnew--->你是不是在做梦?
1、应该把它放在TStringList里,用IndexOf方法。
2、字符串是不能转化成字符的,想想看,字符串长度不固定,而Char这是一个字符。
这样是可以的:
var
c: Char;
str: String;
begin
c := str[1];//注意string下标是从1开始的
end;
 
1.用关于集合:可能应该说是 枚举型 更合适,如果用tstringlist就太夸张了。
2.当然知道长度的差别,我还没白痴到那个程度。
我的意思是可以用一个函数,把一个string转换成char[],类似与pchar()函数。

请各位大虾踊跃灌水!
 
先说明你用这个集合干什么?
是用户输入的?还是自己定义的?如果是自己定义的,那最好用枚举,只是在
显示给用户看的时候做一下转换而已。
把一个String转换成char[],用PChar有什么不好?
 
>>用tstringlist就太夸张了
绝对不夸张!——这是即高效又方便的法子。

>>把一个string转换成char[],类似与pchar()函数
你的意思是不是函数的返回值是一个数组——可它实际上就是指向数组首元素的指针呀。(如果错了,请指正)
我刚才试了好几次都不能返回动态数组。
 
枚举型的值如何转成string型的?有函数吗?
我试过vartostr(),结果不行。
 
从TypInfo.pas中找
 
string本质上是字符数组。
如:
a:string;
i:char;
j:integer;
begin
if j<length(a) then
i:=a[j];
end;
 
是 if (j>0) and (j<length(a)) then i:=a[j];
 
>>枚举型的值如何转成string型

Question: How to convert font style values into string values?
Answer: For converting enumerated type values into string we should use the GetEnumName function from TypInfo unit.
Below is example how to perform this action for TFontStyle type and for our custom type:

type
TOurType = (otFirst, otSecond, otThird, otForth, otFifth, otLast);


procedure TForm1.Button1Click(Sender: TObject);
var
OT: TOurType;
FT: TFontStyle;
begin
// TFontStyle values
Memo1.Lines.Add('The TFontStyle values:');
for FT := Low(TFontStyle) to High(TFontStyle) do
Memo1.Lines.Add(GetEnumName(TypeInfo(TFontStyle), ord(FT)));

// The custom TOurType values
Memo1.Lines.Add('The TOurType values:');
for OT := Low(TOurType) to High(TOurType) do
Memo1.Lines.Add(GetEnumName(TypeInfo(TOurType), ord(OT)));


Uploader: Igor Siticov
 
GetEnumName是什么?为什么编译通不过?
Error Message:
"Undeclared identifier:'GetEnumName'"
 
uses TypInfo;
 

Similar threads

S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
S
回复
0
查看
772
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部