好久没用D了,问各位一个问题....谢谢.....

mdejtod 2007-11-28 07:14:11
RT,转行一个多月,现在要写个小程序,
就是用D操作EXCEL的问题,在EXCEL中,可以显示其它国家的语言,比如泰语,韩语,希伯莱语,都可以正常显示,现在我把表格的中数据导入到STRINGGRID中,就没办法正常显示其它国的语言了,显示成 ???? 这样 请问要怎么转换字符的编码格式?请教一下用ADO连接到EXCEL,让EXCEL中的数据显示在DBGRID表格中,要怎么做?
很急,谢谢各位了!!!!!!
...全文
161 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
componentcn2 2010-06-03
  • 打赏
  • 举报
回复
设置ADODataSet或ADOTable
  将ADODataSet或ADOTable连接到刚才的ADOConnection。如果不用ADOConnection就直接设置ADODataSet或ADOTable的ConnectionString属性。 www.componentcn.com
mdejtod 2007-12-12
  • 打赏
  • 举报
回复
不让它沉了,将其它国的语言转换为unicode码要怎么转?
function TFrmMenu.AnsiToUnicode(Ansi: Variant): string; //ANSI转换为 Unicode码
var s:string;
i:integer;
j,k:string[2];
a:array [1..1000] of char;
Temp:Pwidechar;
begin
s:='';
Temp:=StringToWideChar(Ansi,@(a[1]),512);
i:=1;
while ((a[i] <> #0) or (a[i+1] <> #0)) do
begin
j:=IntToHex(Integer(a[i]),2);
k:=IntToHex(Integer(a[i+1]),2);
s:=s+k+j;
i:=i+2;
end;
Result:=s;
end;
比如泰文,这样转出来的全是 ????? 的unicode码...不知道要怎么办了,接收的参数Ansi是正确的: '2)2D- ¦"', 可就是得不到这个串的unicode码,而是 ????? 的unicode编码,请问要怎么办??
hui717 2007-12-12
  • 打赏
  • 举报
回复
UP
mdejtod 2007-12-01
  • 打赏
  • 举报
回复
谢谢各位..
现在要用十六进制来读写操作文件,不知哪位有搞过的,帮忙一下.....
比如,创建一个文本文件,让它以 Unicode编码的格式保存,然后再写入十六进制的数,要怎么实现?还有就是怎么以十六进制的方式打开一个文件??????
火星牛 2007-12-01
  • 打赏
  • 举报
回复
1、需要处理成widestring,在ADO读出来时需要用asVariant赋给widestring变量,不能用asString;
2、显示的元件如果不用tnt,需要自己在onCustomDraw事件里使用windows API DrawTextW来画;
3、要显示哪种语言,需要安装那种语言的字库;

http://www.evget.com/zh-CN/product/1409/feature.aspx
这里面的DDManager支持unicode的编写,用的cxGrid来显示,就是用了DrawTextW.
mdejtod 2007-11-30
  • 打赏
  • 举报
回复
哪位知道用文件流操作十六进制的文件呀?
比如,创建一个文本文件,让它以 Unicode编码的格式保存,然后再写入十六进制的数,要怎么实现?还有就是怎么以十六进制的方式打开一个文件??????
Harryfin 2007-11-30
  • 打赏
  • 举报
回复
韩文好像没办法的,我以前是用MultiByteToWideChar转的,结果出来是???,害得我最后要搞MAPPING,直接转十六进制码。期待高人方法。
mdejtod 2007-11-29
  • 打赏
  • 举报
回复
各位帮帮忙哪.....没办法显示韩文..........
brightyang 2007-11-29
  • 打赏
  • 举报
回复
delphi自带的显示控件都不支持Unicode,可以安装TNT控件包来替换自带的显示控件,有tntStringGrid
mdejtod 2007-11-29
  • 打赏
  • 举报
回复
嗯,谢谢各位,现在用TntDBGrid 连接到EXCEL,可是不能显示韩文,不知哪位可以帮忙解决????
很急.,,,还有就是,要怎么将这表格中的内容存为一个十六进制的文件?
当打开一个文件时,可不可以以十六进制的方法来读其中的内容??
谢谢!!!
luxuewei5214 2007-11-29
  • 打赏
  • 举报
回复
delphi自带的显示控件都不支持Unicode,可以安装TNT控件包来替换自带的显示控件,有tntStringGrid
jhldelphi 2007-11-29
  • 打赏
  • 举报
回复
怎么转换字符的编码格式,不清楚........

连接:
//*********** 打开EXCEL文件*************
procedure TFrm_gzgl_kqsjlr.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
edit1.Text := opendialog1.FileName;
if trim(edit1.Text) <> '' then
begin
//******* EXCEL工作表 ******
adoconnection1.Connected:=false;
adoconnection1.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='''+edit1.Text+''';Extended Properties=Excel 8.0;Persist Security Info=False';
adoconnection1.Connected:=true;

adoconnection1.GetTableNames(listbox1.Items);
end;
end;
jhldelphi 2007-11-29
  • 打赏
  • 举报
回复
1.use ado
使用ADOExpress创建Microsoft Excel 浏览器
作者: David Intersimone
日期: 2000年08月22日
.打开Delphi,创建新的Application。

2.在Form中放置ADODataSet

3.将CommandType的属性设为cmdTableDirect。
ADODataSet和BDEDataSet访问数据表相类似。对于ADO来说,要说明数据源然后利用数据感
知(data-aware)控件将数据显示在应用程序中。首先要设置的是CommandType,它用来告
诉ADO引擎准备调用什么样的命令。

4.设置ConnectionString属性
ConnectionString属性告诉ADO如何联接数据源。点击省略号会显示ConnectionString对话
框。我们要自己创建ConnectionString所以选择Use Connection String,然后点击Build
按钮激活Data Link Properties对话框。首先要做的是选择我们要用的数据提供者(Data
Provider)以取得数据,以为要访问的对象是Excel,所以我们选择Microsoft JET OLEDB
4.0 Provider,点击NEXT。下一步是要选择联接的具体对象,通过Browse按钮,选择任意
一个Excel文件或者使用我们提供的样例文件Forecast.xls。在测试ConnectionString之前,
我们还要手动的添加Extended Property,点击OK返回到ConnectionString对话框然后输入
’Extended Properties=Excel 8.0;’别忘了每一个ConnectionString实体都需要用分号
隔离。这是要对ADO声明我们需要Excel支持并使类库关联到Excel 8.0上。点击Build按钮,
然后点击TEST,如果返回正确的结果,这一步的工作就完成了。

5.设置CommandText属性
该属性变成下来表单,允许你选择数据源中定义的表,选择a$。

6.在Form中放置Datasource(Data Access)组件,和DBGrid(Data Controls)。
我们需要将ADODataset连接到网格上显示数据。将DBGrid的DataSource属性设置为
DataSource1,DataSource的ADODataSet属性设置为ADODataSet1。

7.将ADODataSet的Active属性设为True
通过激活ADODataSet,我们可以在设计模式下测试查询的运行状态。来自于EXCEL的数据
将显示在网格中。

1.设置ADOConnection的ConnectionString
  构造ConnectionString时,OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider作为ADO的驱动程序。这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件。
  连接的数据库名称当然就是你要打开的Excel文件,注意扩展名是*.xls,而不是*.mdb。
  最关键的一点是,还要设置扩展属性Extended Properties为“Excel 8.0”,否则,测试连接时会报告无法识别数据格式的错误。Extended Properties的属性值在“所有”参数页中输入。
  最后,设置完成后的ConnectionString中的各项参数为:
  Provider=Microsoft.Jet.OLEDB.4.0
  Data Source=MyExcelFile.xls
  Extended Properties=Excel 8.0
  Persist Security Info=False

  2.设置ADODataSet或ADOTable
  将ADODataSet或ADOTable连接到刚才的ADOConnection。如果不用ADOConnection,也可以参照上面的方法直接设置ADODataSet或ADOTable的ConnectionString属性。
  对于ADODataSet,需要将CommandType属性设置为cmdTableDirect,而对于ADOTable,则将TableDirect属性设置为True。因为,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。如果不设置直接访问,则系统会报告SQL语句格式错误等信息。
  然后,当你下拉ADODataSet中的CommandText属性或ADOTable的TableName属性时,就可以选择到要打开的工作表了。注意,表名后面多了加一个$符号。
      3.打开ADODataSet或ADOTable
mdejtod 2007-11-29
  • 打赏
  • 举报
回复
晕了,怎么回事,明明回复了却看不到.
怎么将其它国的语言转换成十六进制的,就是 Unicode 编码转换成十六进制
mdejtod 2007-11-29
  • 打赏
  • 举报
回复
这破CSDN,老半天才出回复框

现在要把其它国的语言全部转换为十六进制的,存放到一个TXT文本里面,不知道要怎么转.用TNT控件显示出来的是不是Unicode编码,如果是,那UNICODE要怎么转换为十六进制的呢?
panwujun 2007-11-29
  • 打赏
  • 举报
回复
顶,关注中
luxuewei5214 2007-11-29
  • 打赏
  • 举报
回复
可能你的韩文不是Unicode编码的,先把它转为Unicode再显示(具体我也不会转)
1 课程目标 学会使用腾讯提供的云开发功能快速开发后台 数据接口,用于存储小程序中用到的数据 学会使用小程序中常见的一些API,比如:分享小程序,拨打手机电话,地图位置等 掌握快速上架一款小程序需要的步骤 前端相关的css以及html,vue等基础不作为本课程的重点,本课程将提供一个基于图鸟UI修改的企业产品展示前端代码,我们在此基础上使用云开发实现页面数据动态化。由于本人是后端开发,对于前端样式等不擅长,所以基本都是直接复制现成的样式做简单的修改,想要学习前端html,css,js,vue等基础知识的小伙伴可以不必考虑本课程,B站以及其他平台有大量的免费课程。 2 课程内容 本课程将实现一个完整功能的企业产品展示小程序,之前有人找我开发一个农用拖拉机企业展示的小程序,说是要用云开发来做,正好我之前没用过云开发,都是自己搭建后端API以及管理后台来开发,因此想着一边开发一边录一个云开发的课程,帮助一些同学快速入门云开发,将包括一下内容: 首页 主要产品推荐 顶部铲平轮播图展示 中间产品分类 轮播消息通知 产品价格咨询 用户留下联系方式 全部产品列表展示 产品详细信息展示 用户估价咨询表单,用户向企业出售产品,类似厂家回收 个人中心 注册登录 询价记录 拨打企业电话 查看企业地址 查看企业工作时间 3 使用技术 vue2 uniapp 图鸟UI javascript 腾讯云开发 4 需要的开发工具 图鸟原始模板:https://ext.dcloud.net.cn/plugin?id=14378 hbuilder开发工具: https://www.dcloud.io/hbuilderx.html 微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧