C++ builder 怎么从txt文件中提取出你想要的内容, 15

gps定位存下的文本,里面有时间和经纬度,我想通过时间来提取经纬度。求高手帮忙。... gps定位存下的文本,里面有时间和经纬度,我想通过时间来提取经纬度。求高手帮忙。 展开
 我来答
dwjchdu
2011-09-10 · TA获得超过5915个赞
知道大有可为答主
回答量:4576
采纳率:60%
帮助的人:1179万
展开全部
关键看你的文本文件的格式是怎么样的才能有具体的代码出来
一般情况下这样操作:
打开文本文件
读取文本文件内容到Memo中
逐行读取Memo中的内容,提取与时间对应的经纬度信息
更多追问追答
追问
181736    511这是其中一个文本的一行,另个一个文本的一行是181736  e 45.6    s  54.3
想要在第一个文件中生成181736 511 e 45.6 s 54.3这样的格式。这也是一行。我用了memo可是老是提醒打不开我想打的那个txt文本。
追答
读取文本文件到Memo中的基本方法:
int iFileHandle;
int iFileLength;
int iBytesRead;
char *pszBuffer;
if (OpenDialog1->Execute())
{
try
{
iFileHandle = FileOpen(OpenDialog1->FileName, fmOpenRead);
iFileLength = FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
pszBuffer = new char[iFileLength+1];
iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
FileClose(iFileHandle);
this->Memo1->Text=pszBuffer;
delete [] pszBuffer;
}
catch(...)
{
Application->MessageBox("Can't perform one of the file read operation", "Alert", IDOK);
}
}

写文本文件的基本方法:
char szFileName[MAXFILE+4];
int iFileHandle;
int iLength;
if (SaveDialog1->Execute())
{
if (FileExists(SaveDialog1->FileName))
{
fnsplit(SaveDialog1->FileName.c_str(), 0, 0, szFileName, 0);
strcat(szFileName, ".BAK");
RenameFile(SaveDialog1->FileName, szFileName);
}
iFileHandle = FileCreate(SaveDialog1->FileName);
FileWrite(iFileHandle,this->Memo1->Text.c_str(),this->Memo1->Text.Length());
FileClose(iFileHandle);
}

两个文件合并,如果两个文件之间的行与行是一一对应的,那么就简单了,取第一个文件的每一行,加上第二个文件的相同行的内容(去掉类似于181736这样的行头,可以用文本的SubString方法)。
胡说ICT
2011-09-09
知道答主
回答量:3
采纳率:0%
帮助的人:5159
展开全部
通过时间不可能提取经纬度。你的意思是不是将对应时间的经纬度提取?可以逐行读取,以逗点分隔,先读取解析时间,比较后正确再读取解析经纬度。
追问
恩,我想做的就是通过时间提取对应的经纬度,看了好多资料说用memo可是我试了试貌似不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哀傷の霜之哀傷ba69
2011-09-09 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:122万
展开全部
fread读数据块,fseek移动文件内置指针。谢谢采纳。
追问
可以写的具体一点吗?我不是很懂,刚开始学习C++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式