欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSON文本文件导入到Sqlite3数据库(04)

程序员文章站 2023-12-28 20:27:28
1】Navicat for SQLite ,直接导入,会出现好多问题,即使导入成功,最后一个字经常会是乱码,这方法放弃 2】编程转换,JSON文本文件中有好多偏僻字,Delphi 里的UTF8toAnsi函数往往不成功,这方法放弃/因为Delphi自带的转换函数遇到其无法识别的字符串就返回空 fun ......

1】navicat for sqlite ,直接导入,会出现好多问题,即使导入成功,最后一个字经常会是乱码,这方法放弃JSON文本文件导入到Sqlite3数据库(04)

JSON文本文件导入到Sqlite3数据库(04)


2】编程转换,json文本文件中有好多偏僻字,delphi 里的utf8toansi函数往往不成功,这方法放弃/因为delphi自带的转换函数遇到其无法识别的字符串就返回空

 function decodeutf8str(const s: utf8string): widestring;
 var lensrc, lendst  : integer;
 begin
   lensrc  := length(s);
   if(lensrc=0)then exit;
   lendst  := multibytetowidechar(cp_utf8, 0, pointer(s), lensrc, nil, 0);
   setlength(result, lendst);
   multibytetowidechar(cp_utf8, 0, pointer(s), lensrc, pointer(result), lendst);
 end;

3】json文本文件在线转换成csv文件,分隔符为$,然后将结果拷贝到excel里,再将excel文件导入到navicat for sqlite,完美!

update ciauthor set  name='作者介绍:'||name
insert into atb (id,name,info) 
select ciauthor.value+64051,ciauthor.name,ciauthor.long_desc from ciauthor 

insert into atb (id,name,info) 
select ci.value+65641,ci.rhythmic||'-'||ci.author,ci.content
from ci 

insert into atb (id,name,info) 
select 86691+rowid, aa.title||'-'||aa.author,aa.paragraphs from aa 

insert into atb (id,name,info) 
select 97748+rowid, '幽梦影-张潮'||rowid, aa.content||'---'||aa.comment from aa 
--vacuum

insert into atb (id,name,info) 
select 98415+ rowid, aax.title||'--'||aax.author
,aax.notes||'--'||aax.paragraphs  from aax

--insert into atb (id,name,info) 
select 99513+rowid
, sheet1.title||'--'||sheet1.author,sheet1.paragraphs from sheet1 

 

上一篇:

下一篇: