急急急~~求一个用MFC写的字典程序,能实现简单的查询就行,求高手们指点~

急急急~~求一个用MFC写的字典程序,能实现简单的查询就行,求高手们指点~,第1张

386 icePub_dictionaryCodeTransfer

l 函数原型:

int WINAPI icePub_dictionaryCodeTransfer(char strDictionaryFilename,char strSrc,char strCode)

输入:strDictionaryFilename 字典文件

strSrc 待处理单词

输出:strCode strSrc对应信息

返回码:

l VC连接Lib方式声明

__declspec(dllexport)

int WINAPI icePub_dictionaryCodeTransfer(char strDictionaryFilename,char strSrc,char strCode);

l 动态调用例程

VC sample代码:

char strCode[1024];

typedef int (WINAPI ICEPUB_DICTIONARYCODETRANSFER)(char strDictionaryFilename,char strSrc,char strCode);

ICEPUB_DICTIONARYCODETRANSFER icePub_dictionaryCodeTransfer = 0;

HINSTANCE hDLLDrv = LoadLibrary("icePubDlldll");

if(hDLLDrv)

{

icePub_dictionaryCodeTransfer = (ICEPUB_DICTIONARYCODETRANSFER )GetProcAddress(hDLLDrv, "icePub_dictionaryCodeTransfer");

}

if(icePub_dictionaryCodeTransfer)

icePub_dictionaryCodeTransfer("汉英字典txt","我",strCode);

if(hDLLDrv)

FreeLibrary(hDLLDrv);

AfxMessagBox(strCode);

VB sample 代码:

Private Declare Function icePub_dictionaryCodeTransfer Lib "icePubDlldll" (ByVal strDictionaryFilename As String,ByVal strSrc As String,ByVal strCode As String) As Integer

Dim a2 As Integer

Dim strCode As String

strCode=Space(1024)

a2=icePub_dictionaryCodeTransfer("汉英字典txt","我",strCode)

MsgBox strCode

=============================

387 icePub_dictionaryCodeTransferString

批量转换

l 函数原型:

int WINAPI icePub_dictionaryCodeTransferString(char strDictionaryFilename,char strSrcString,char strCode,int srcWordLen,char strFenge)

输入:strDictionaryFilename 字典文件

strSrcString 待处理单词串

srcWordLen 待处理单词串里每一个单词长度(意思必须是定长)

strFenge strCode里每一个结果分隔字符串

输出:strCode strSrcString对应信息串

返回码:

l VC连接Lib方式声明

__declspec(dllexport)

int WINAPI icePub_dictionaryCodeTransferString(char strDictionaryFilename,char strSrcString,char strCode,int srcWordLen,char strFenge);

l 动态调用例程

VC sample代码:

char strCode[1024];

typedef int (WINAPI ICEPUB_DICTIONARYCODETRANSFERSTRING)(char strDictionaryFilename,char strSrcString,char strCode,int srcWordLen,char strFenge);

ICEPUB_DICTIONARYCODETRANSFERSTRING icePub_dictionaryCodeTransferString = 0;

HINSTANCE hDLLDrv = LoadLibrary("icePubDlldll");

if(hDLLDrv)

{

icePub_dictionaryCodeTransferString = (ICEPUB_DICTIONARYCODETRANSFERSTRING )GetProcAddress(hDLLDrv, "icePub_dictionaryCodeTransferString");

}

if(icePub_dictionaryCodeTransferString)

icePub_dictionaryCodeTransferString("内码字典txt","忧飔萧然",2,strCode," ");

if(hDLLDrv)

FreeLibrary(hDLLDrv);

AfxMessagBox(strCode);

VB sample 代码:

Private Declare Function icePub_dictionaryCodeTransferString Lib "icePubDlldll" (ByVal strDictionaryFilename As String,ByVal strSrcString As String,ByVal srcWordLen As Integer,ByVal strCode As String,ByVal strFenge As String) As Integer

Dim a2 As Integer

Dim strCode As String

strCode=Space(1024)

a2=icePub_dictionaryCodeTransferString("内码字典txt","愁云惨淡",2,strCode, " ")

MsgBox strCode

===========

收邮件吧

一看你就是个刚毕业的,这些都不是事。你工作中使用的IDE都会帮你记住函数变量的名称,到时候你只需要敲出前几个字符,就能联想匹配。比如eclipse,xcode,VS。你要的词典当然也是有的。这要看你用到哪些引擎,比如cocos2d引擎,那么你去网上搜一下就有很多。也有一些公司压根就是用自己开发的函数库,网上也就不可能有词典。那你就得问你的同事了。一般都有文档解释每个函数的原型功能等,如果公司内部都没有那你除非自己造了。不过好在我们还是有eclipse,xcode,VS此类工具帮助嘛。

其中,涉及到文件的读写,这里给出包含的头文件和主要的方法:

#include <fstreamh>

#include <stringh>

#include <iostreamh>

//读文件用到的方法

fstream file;

fileopen("datatxt",ios::in);//以读方式打开文件datatxt

fileeof() 判断文件是否读完

filegetline(char line, int n)

getline方法用于从文件里读取一行字符。其中,第一个参数line是一个指向字符串的字符指针或存放字符串的字符数组,n表示本次读取的最大字符个数。

//写文件用到的方法

fileopen("datatxt",ios::out);//以写方式打开文件datatxt

filewrite(char line, int n)

write方法用于向文件写一行字符。其中,第一个参数line是一个指向字符串的字符指针或存放字符串的字符数组,n表示本次写的字符个数。

fileput(char c), put方法用于向文件写一个字符。

fileclose();//关闭文件 ,不论读或写文件,使用完后需要关闭文件。

程序如下,经过修改,显示没有错误和警告。但是运行时查找,插入,删除单词时就卡住了。请高人指点,到底是怎么回事?谢谢了!

dictionaryh

#ifndef _DICTIONARY_H

#define _DICTIONARY_H

const int size=30;

/公有部分/

dictionary::dictionary()//如果记录为空,创建一个作为结尾

{

textopen("d:\\tiny-dicttxt",ios::in|ios::out);

if(texteof())

text<<" ";

textclose();

}

void dictionary::findWord()

{

cout<<"请输入所要查询的单词"<<endl;

string word;

cin>>word;

textopen("d:\\tiny-dicttxt",ios::in);//打开一个文件作读 *** 作

int i=0;

while(1)

{

string temp;

text>>temp;

if(temp=="")//在数据的末尾加上表示文件结束

{

cout<<"未找到该单词"<<endl;

break;

}

if(word==temp)

{

cout<<"释义:";

do

{

text>>temp;

if(temp=="%")//在释义末尾加上%表示释义结束

break;

cout<<temp<<" ";

}while(temp!="%");

cout<<endl;

}

if(temp=="%")

break;

i+=size;

textseekg(i,ios::beg);

}

textclose();

}

void dictionary::insertWord()

{

cout<<"输入你所要添加的单词"<<endl;

string word;

cin>>word;

cout<<"输入你添加单词的释义"<<endl;

string paraphrase;

cinignore();

getline(cin,paraphrase);

cout<<paraphrase<<endl;

textopen("d:\\tiny-dicttxt",ios::in|ios::out);

char z;

int i=-size;

while(z!=''&&z!='+')//用来标识结尾,+用来表示删除一个单词留下的区域

{

i+=size;

textseekp(i);

text>>z;

}

if(wordlength()+paraphraselength()+4>size)//单词与释义之间一个空格和用于标识结尾的空格加%加空格所以加4

{

cout<<"输入太长,插入失败"<<endl;

return ;

}

textseekp(i,ios::beg);

text<<word<<" "<<paraphrase<<" % ";

if(z=='+')

{

textclose();

return ;

}

textseekp(i+size,ios::beg);

text<<" ";

textclose();

}

void dictionary::deleteWord()

{

cout<<"请输入删除的单词"<<endl;

string word;

cin>>word;

textopen("d:\\tiny-dicttxt",ios::in|ios::out);

string Deleted;

int i=-size;//标记删除的位置

do

{

i+=size;

textseekg(i);

text>>Deleted;

if(Deleted=="")

{

cout<<"未发现该单词,删除失败"<<endl;

return ;

}

}while(Deleted!=word);

textseekp(i);

text<<"+ ";//第一元素标记为+,表示空

for(int j=1;j<size;j++)

{

text<<" ";

}

cout<<"删除成功"<<endl;

textclose();

}

#endif

maincpp

using std::cout;

using std::endl;

using std::cin;

#include<fstream>

using std::ios;

using std::fstream;

#include<string>

using std::string;

using std::getline;

#include"dictionaryh"

class dictionary

{

public:

dictionary();

void findWord();

void insertWord();

void deleteWord();

private:

fstream text;

};

void instruction()

{

cout<<"请选择:\n(1)查找单词\n(2)插入单词\n(3)删除单词\n(4)退出\n";

}

int main()

{

instruction();

int select=0;

cin>>select;

while(select!=1&&select!=2&&select!=3&&select!=4)

{

cout<<"选择错误,请重新选择"<<endl;

instruction();

cin>>select;

}

dictionary oper;

bool exe=true;

while(exe)

{

switch(select)

{

case 1:

operfindWord();

break;

case 2:

operinsertWord();

break;

case 3:

operdeleteWord();

break;

case 4:

exe=false;

break;

}

if(select==4)

break;

instruction();

cin>>select;

while(select!=1&&select!=2&&select!=3&&select!=4)

{

cout<<"选择错误,请重新选择"<<endl;

instruction();

cin>>select;

}

}

return 0;

}

d:\\tiny-dicttxt 里的内容如下:(是个英德字典,左边一列是英语,右边是德语)

bird Raubvogel, Greifvogel

rabbit Kaninchen

monkey Affe

horse Pferd

crab Krabbe, Krebs

eagle Adler, Aar; Zehn-Dollar-Note

以上就是关于急急急~~求一个用MFC写的字典程序,能实现简单的查询就行,求高手们指点~全部的内容,包括:急急急~~求一个用MFC写的字典程序,能实现简单的查询就行,求高手们指点~、有没有程序员专用的代码字典,我是一名主C++的coder,有没有类似于英汉词典那样的方便查找代码的词典、编写一个程序,实现具有如下功能的交互式字典: (1)可以查询每个单词的解释。例如:输入“Hello”将显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9855497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存