全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:912
推到 Plurk!
推到 Facebook!

字符串等几个问题

答題得分者是:dllee
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-09 21:56:14 IP:211.162.xxx.xxx 未訂閱
大大们,小弟又要向您们请教了,请点拨一下我吧 问题 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-09 23:48:23 IP:61.224.xxx.xxx 未訂閱
哇,問題會不會太多了一點  直接改您的程式囉... <>< 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;
        }            CheckListBox1->Items->AddStrings(str);
        
        for(int i = 0; i < str->Count; i  )
        {
            TListItem   *ListItem = ListView1->Items->Add();            //加一个空项就马上把自己加进去
            ListItem->Caption = str->Strings[i];
        }
}
我绕了一个大圈子,建了一个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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-10 09:55:18 IP:211.162.xxx.xxx 未訂閱
dllee大大,我无法用语言来表达对您的感激,真的,辛苦您了! 问题已经结案了,但是我仍然还有几点不清楚,又得麻烦您了
------
人生在勤,不索何获?
系統時間:2024-06-29 16:41:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!