字符串等几个问题 |
答題得分者是:dllee
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
大大们,小弟又要向您们请教了,请点拨一下我吧
问题 class="code">
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HFILE hFile;
OFSTRUCT ofstruct;
ofstruct.cBytes = sizeof(ofstruct);
AnsiString sPath = Edit1->Text;
hFile = OpenFile(sPath.c_str(),&ofstruct,OF_READ);
if(hFile == HFILE_ERROR)
{
ShowMessage("不能打开指定的文件");
return;
}
else
{
ShowMessage("搞定");
}
}
我的问题是有没有简单的方法来判断一个任意类型文件是否存在.
问题2:
就是AnsiString str = "123"代表对str赋值为123,那AnsiString str = '123'是代表什么意思呢?还有TIcon *icon = new TIcon(),TIcon* Icon = new TIcon()和TIcon *Icon = new TIcon代表的意思是一样的吗?
问题3:
现在我想判断一个字符串里面的最后4个字符是否为.exe,而我的方法又有问题:
void __fastcall TForm1::Button1Click(TObject *Sender) { if(StrScan(Edit1->Text.c_str(), '.exe')) { ShowMessage("有,搞定了"); } else ShowMessage("没有找到在这个字符串里有.exe"); }但是我发现当字符串为: c:\test.exe 时是可以正确判断的,但当形为 c:\texe.ico时,它也判断为有.exe哦,我可是要知道该字符串的最后4个是否为.exe啊.我不知道有没有别的什么办法避免? 问题4: TListItem和TStringList之间有关系吗?有什么办法可以转化: (下面的ListView1的ViewStyle为vsReport;还有ListView1.Columns[0].Caption = "进程名称") void __fastcall TForm1::Button1Click(TObject *Sender) { TRegistry *Reg = new TRegistry; AnsiString sCurrentPath; sCurrentPath = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; TStringList *str = new TStringList; try { Reg->RootKey = HKEY_LOCAL_MACHINE; Reg->OpenKey(sCurrentPath,true); Reg->GetValueNames(str); //得到所有自动运行的键值 } __finally { Reg->CloseKey(); delete Reg; } CheckListBox1->Items->AddStrings(str); for(int i = 0; i < CheckListBox1->Items->Count; i ) { TListItem *ListItem = ListView1->Items->Add(); //加一个空项就马上把自己加进去 ListItem->Caption = CheckListBox1->Items->Strings[i]; } }我绕了一个大圈子,建了一个CheckListBox在中间为ListView做中转,因为我不知道如何在TListItem和TStringList之间建立一个桥梁. 上述问题对大大您们来说是有点简单,但对我这个小菜鸟来说是有点难,恳请您们能指点一下我,好吗?谢谢了 人生在勤,不索何获?
------
人生在勤,不索何获? |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
哇,問題會不會太多了一點
直接改您的程式囉...
<>< face="Verdana, Arial, Helvetica">引言:
大大们,小弟又要向您们请教了,请点拨一下我吧
问题>如果只是判斷檔案是否存在?用 class="code">
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(FileExists(sPath))
{
ShowMessage("搞定");
}
else
{
ShowMessage("沒這檔");
}
}
我的问题是有没有简单的方法来判断一个任意类型文件是否存在.
问题2:
就是AnsiString str = "123"代表对str赋值为123,那AnsiString str = '123'是代表什么意思呢?还有TIcon *icon = new TIcon(),TIcon* Icon = new TIcon()和TIcon *Icon = new TIcon代表的意思是一样的吗?
在 C/C 中, "字串" '字元' 因為 AnsiString 可以幫我們轉型(把不是字串的數值也轉成字串),所以隨您指定 compile 都可以過。
TIcon *ico=new TIcon;
與
TIcon *ico=new TIcon();
是一樣的,因為它的建構元不需要參數。
问题3:
现在我想判断一个字符串里面的最后4个字符是否为.exe,而我的方法又有问题:
如果要判斷副檔名,可以直接使用 ExtractFileExt()
void __fastcall TForm1::Button1Click(TObject *Sender) { if(ExtractFileExt(Edit1->Text).UpperCase()=="EXE") { ShowMessage("有,搞定了"); } else ShowMessage("副檔名不是 exe"); }问题4: TListItem和TStringList之间有关系吗?有什么办法可以转化: (下面的ListView1的ViewStyle为vsReport;还有ListView1.Columns[0].Caption = "进程名称") void __fastcall TForm1::Button1Click(TObject *Sender) { TRegistry *Reg = new TRegistry; AnsiString sCurrentPath; sCurrentPath = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; TStringList *str = new TStringList; try { Reg->RootKey = HKEY_LOCAL_MACHINE; Reg->OpenKey(sCurrentPath,true); Reg->GetValueNames(str); //得到所有自动运行的键值 } __finally { Reg->CloseKey(); delete Reg; }我绕了一个大圈子,建了一个CheckListBox在中间为ListView做中转,因为我不知道如何在TListItem和TStringList之间建立一个桥梁. 上述问题对大大您们来说是有点简单,但对我这个小菜鸟来说是有点难,恳请您们能指点一下我,好吗?谢谢了 人生在勤,不索何获? >>< face="Verdana, Arial, Helvetica"> 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |