社区
C++ Builder
帖子详情
如何将一字符替换为另一个字符(在线急等)
wanglovec
2006-08-14 04:26:12
AnsiString FileName;
AnsiString Fil;
if (OpenDialog1->Execute())
{
FileName= OpenDialog1->FileName ;
}
大家知道,此时 FileName="F:\文件操作函数\TTT.txt" ;
如何将他变为 FileName="F:\\文件操作函数\\TTT.txt" ;
也就是说如何将 "\"替换为"\\" ??
...全文
414
24
打赏
收藏
如何将一字符替换为另一个字符(在线急等)
AnsiString FileName; AnsiString Fil; if (OpenDialog1->Execute()) { FileName= OpenDialog1->FileName ; } 大家知道,此时 FileName="F:\文件操作函数\TTT.txt" ; 如何将他变为 FileName="F:\\文件操作函数\\TTT.txt" ; 也就是说如何将 "\"替换为"\\" ??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wanglovec
2006-08-15
打赏
举报
回复
估计是系统的问题,刚才我也运行成功了一次,现在又不行了.前天装了个ORACLE 8I 安装时提示说会改变一些系统文件,导致系统不稳定. 郁闷呀!!!!!!!!!
weill
2006-08-15
打赏
举报
回复
那我不也成了色狼了?汉,我还是走叭。
BlueDeepOcean
2006-08-15
打赏
举报
回复
我这边的没有问题,你的操作系统或者开发工具好好检查检查吧。
wanglovec
2006-08-15
打赏
举报
回复
我的还是报错,"ACCESS violation at address 7d606bfc in module'shell32.dll'read of address 016a2038"
wanglovec
2006-08-14
打赏
举报
回复
谢谢楼上的,谢谢深海美女.下班了 明天再弄弄 看
wanglovec
2006-08-14
打赏
举报
回复
不会吧,难道是我的编译器有问题 ? 我把你帖的代码运行了一下,还是报错.只要 输入保存文件名时就出错,不过 我记的刚才突然有一次好了.
难道是系统不问题 ?? 不会吧
netliuming
2006-08-14
打赏
举报
回复
运行你的代码没发现任何问题......FFE7 => 0xFFE7 也都成功
BlueDeepOcean
2006-08-14
打赏
举报
回复
没有哇,我这边成功了。发给你看看。:)(我把文件放在桌面上了,保存文文件也放在桌面上了。注意,保存文件的时候,需要写完整文件名和扩展名)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString FName;
AnsiString Fil;
if (OpenDialog1->Execute())
{
FName= OpenDialog1->FileName ;
FName = StringReplace(FName,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
ShowMessage(FName);
}
else
{
ShowMessage("error");
return ;
}
if (SaveDialog1->Execute())
{
Fil= SaveDialog1->FileName ;
Fil = StringReplace(Fil,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
ShowMessage(Fil);
}
else
{
ShowMessage("error");
return ;
}
// const AnsiString FileName="F:\\文件操作函数\\TTT.txt" ;
// const AnsiString Fil="F:\\文件操作函数\\TTT5.txt" ;
TStringList *sl=new TStringList;
TStringList *s2=new TStringList;
sl->LoadFromFile(FName);
s2->LoadFromFile(FName);
int j=0 ;
ShowMessage(s2->Count);
int m=s2->Count%4 ;
int fcount =s2->Count;
int k=0;
for(int i=0;i<sl->Count;i++)
{
if (i!=s2->Count-s2->Count%4-1 || m==0) // 余数为0 (总数为偶数情况)
{
s2->Strings[j]="";
k=i+4;
while (i<k)
{
//s2->Strings[j]=s2->Strings[j]+sl->Strings[i]+"," ;
s2->Strings[j]=s2->Strings[j]+"0x"+sl->Strings[i]+"," ;
i++ ;
}
i=i-1;
j++;
//s2->Strings[j]=sl->Strings[i]+","+ sl->Strings[i+1]+","+sl->Strings[i+2]+","+ sl->Strings[i+3]+","+sl->Strings[i+4]+","+ sl->Strings[i+5]+","+sl->Strings[i+6]+","+ sl->Strings[i+7]+","+sl->Strings[i+8]+","+ sl->Strings[i+9]+","+sl->Strings[i+10]+","+ sl->Strings[i+11]+","+sl->Strings[i+12]+","+ sl->Strings[i+13]+","+sl->Strings[i+14]+","+ sl->Strings[i+15]+",";
//i=i+15;
//j++;
}
if (m!=0&&i==s2->Count-s2->Count%4-1) // 余数不为0 (总数为奇数)
{
s2->Strings[j]="";
for(int n=sl->Count-sl->Count%4;n<sl->Count;n++)
{
s2->Strings[j]=s2->Strings[j]+sl->Strings[n]+",";
}
for(int k=j+1;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
return ;
}
}
for(int k=j;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
}
//---------------------------------------------------------------------------
wanglovec
2006-08-14
打赏
举报
回复
.txt 文件.
AnsiString Fil;
if (SaveDialog1->Execute())
{
Fil= SaveDialog1->FileName ;
Fil = StringReplace(Fil,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
ShowMessage(Fil);
}
else
{
ShowMessage("error");
return ;
}
加上他们以后就不行了 . 也就是说加上SaveDialog 控件就不可以了,你再看看美女
BlueDeepOcean
2006-08-14
打赏
举报
回复
啊,我用的是图片文件作的例子——汗。^-^b
netliuming
2006-08-14
打赏
举报
回复
FName= OpenDialog1->FileName ;
//下面那个没必要,不过你这里也不会影响运行.
FName = StringReplace(FName,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
文件复制吧?你这个是操作什么样类型的文件?好像没什么问题呀?
wanglovec
2006-08-14
打赏
举报
回复
给你一个文件 你严整 看看
FFE7
FFEB
FFEA
FFF0
FFFE
0014
002F
004A
005E
0065
0059
003B
000D
FFD7
FFA4
FF7F
FF70
FF7B
FF9C
FFC9
FFF2
0009
0003
FFDD
FF9E
FF5C
FF31
FF39
FF8B
002E
0115
021F
0316
03BF
03E0
0350
0206
001D
FDD3
FB85
F99D
F87D
F870
F992
FBCC
FED4
0236
0568
07E4
0940
0940
07E4
0568
0236
FED4
FBCC
F992
F870
F87D
F99D
FB85
FDD3
001D
0206
0350
03E0
03BF
0316
021F
0115
002E
FF8B
FF39
FF31
FF5C
FF9E
FFDD
0003
0009
FFF2
FFC9
FF9C
FF7B
FF70
FF7F
FFA4
FFD7
000D
003B
0059
0065
005E
004A
002F
0014
FFFE
FFF0
FFEA
FFEB
FFE7
wanglovec
2006-08-14
打赏
举报
回复
不是吧,你再看看
const AnsiString FileName="F:\\文件操作函数\\TTT.txt" ;
const AnsiString Fil="F:\\文件操作函数\\TTT5.txt" ;
TStringList *sl=new TStringList;
TStringList *s2=new TStringList;
sl->LoadFromFile(FileName);
s2->LoadFromFile(FileName);
int j=0 ;
ShowMessage(s2->Count);
int m=s2->Count%16 ;
int fcount =s2->Count;
int k=0;
for(int i=0;i<sl->Count;i++)
{
if (i!=s2->Count-s2->Count%16-1||m==0) // 余数为0 (总数为偶数情况)
{
s2->Strings[j]="";
k=i+16;
while (i<k)
{
//s2->Strings[j]=s2->Strings[j]+sl->Strings[i]+"," ;
s2->Strings[j]=s2->Strings[j]+"0x"+sl->Strings[i]+"," ;
i++ ;
}
i=i-1;
j++;
//s2->Strings[j]=sl->Strings[i]+","+ sl->Strings[i+1]+","+sl->Strings[i+2]+","+ sl->Strings[i+3]+","+sl->Strings[i+4]+","+ sl->Strings[i+5]+","+sl->Strings[i+6]+","+ sl->Strings[i+7]+","+sl->Strings[i+8]+","+ sl->Strings[i+9]+","+sl->Strings[i+10]+","+ sl->Strings[i+11]+","+sl->Strings[i+12]+","+ sl->Strings[i+13]+","+sl->Strings[i+14]+","+ sl->Strings[i+15]+",";
//i=i+15;
//j++;
}
if (m!=0&&i==s2->Count-s2->Count%16-1) // 余数不为0 (总数为奇数)
{
s2->Strings[j]="";
for(int n=sl->Count-sl->Count%16;n<sl->Count;n++)
{
s2->Strings[j]=s2->Strings[j]+sl->Strings[n]+",";
}
for(int k=j+1;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
return ;
}
}
for(int k=j;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
这段代码你运行一下,是可以的.
但加了他们后就不可以了
AnsiString FName;
AnsiString Fil;
if (OpenDialog1->Execute())
{
FName= OpenDialog1->FileName ;
FName = StringReplace(FName,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
ShowMessage(FName);
}
else
{
ShowMessage("error");
return ;
}
if (SaveDialog1->Execute())
{
Fil= SaveDialog1->FileName ;
Fil = StringReplace(Fil,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
ShowMessage(Fil);
}
else
{
ShowMessage("error");
return ;
}
BlueDeepOcean
2006-08-14
打赏
举报
回复
if (i!=s2->Count-s2->Count%4-1||m==0) // 余数为0 (总数为偶数情况)
我把它改了该,就过去了。
if (i != s2->Count - s2->Count % 4 - 1 && m == 0)
BlueDeepOcean
2006-08-14
打赏
举报
回复
问题出现在while循环上。
因为你的sl中一共就一项(前面的操作决定的),而你的While循环却超过了一项,这样,这个线性列表中的1项读取完毕后,就没有了,而你非要继续读取后面的,因此就错误了。
for(int i=0;i<sl->Count;i++)
{
if (i!=s2->Count-s2->Count%4-1||m==0) // 余数为0 (总数为偶数情况)
{
s2->Strings[j]="";
k=i+4;
while (i<k)
{
//s2->Strings[j]=s2->Strings[j]+sl->Strings[i]+"," ;
s2->Strings[j]=s2->Strings[j]+"0x"+sl->Strings[i]+"," ;
i++ ;
}
wanglovec
2006-08-14
打赏
举报
回复
晕 const AnsiString FileName="F:\\文件操作函数\\TTT.txt" ;
const AnsiString Fil="F:\\文件操作函数\\TTT5.txt" ;
TStringList *sl=new TStringList;
TStringList *s2=new TStringList;
sl->LoadFromFile(FName);
s2->LoadFromFile(FName);
int j=0 ;
ShowMessage(s2->Count);
int m=s2->Count%4 ;
int fcount =s2->Count;
int k=0;
for(int i=0;i<sl->Count;i++)
{
if (i!=s2->Count-s2->Count%4-1||m==0) // 余数为0 (总数为偶数情况)
{
s2->Strings[j]="";
k=i+4;
while (i<k)
{
//s2->Strings[j]=s2->Strings[j]+sl->Strings[i]+"," ;
s2->Strings[j]=s2->Strings[j]+"0x"+sl->Strings[i]+"," ;
i++ ;
}
i=i-1;
j++;
//s2->Strings[j]=sl->Strings[i]+","+ sl->Strings[i+1]+","+sl->Strings[i+2]+","+ sl->Strings[i+3]+","+sl->Strings[i+4]+","+ sl->Strings[i+5]+","+sl->Strings[i+6]+","+ sl->Strings[i+7]+","+sl->Strings[i+8]+","+ sl->Strings[i+9]+","+sl->Strings[i+10]+","+ sl->Strings[i+11]+","+sl->Strings[i+12]+","+ sl->Strings[i+13]+","+sl->Strings[i+14]+","+ sl->Strings[i+15]+",";
//i=i+15;
//j++;
}
if (m!=0&&i==s2->Count-s2->Count%4-1) // 余数不为0 (总数为奇数)
{
s2->Strings[j]="";
for(int n=sl->Count-sl->Count%4;n<sl->Count;n++)
{
s2->Strings[j]=s2->Strings[j]+sl->Strings[n]+",";
}
for(int k=j+1;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
return ;
}
}
for(int k=j;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
你看看 这段代码可以运行的,可加了上面的后就不行了 气死我了 .
帮忙看一下呀美女
BlueDeepOcean
2006-08-14
打赏
举报
回复
你想实现什么呀?
BlueDeepOcean
2006-08-14
打赏
举报
回复
-_-! 不看可不可以呀~~太长了……
wanglovec
2006-08-14
打赏
举报
回复
AnsiString FName;
AnsiString Fil;
if (OpenDialog1->Execute())
{
FName= OpenDialog1->FileName ;
FName = StringReplace(FName,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
ShowMessage(FName);
}
else
{
ShowMessage("error");
return ;
}
if (SaveDialog1->Execute())
{
Fil= SaveDialog1->FileName ;
Fil = StringReplace(Fil,"\\","\\\\",TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
ShowMessage(Fil);
}
else
{
ShowMessage("error");
return ;
}
// const AnsiString FileName="F:\\文件操作函数\\TTT.txt" ;
// const AnsiString Fil="F:\\文件操作函数\\TTT5.txt" ;
TStringList *sl=new TStringList;
TStringList *s2=new TStringList;
sl->LoadFromFile(FName);
s2->LoadFromFile(FName);
int j=0 ;
ShowMessage(s2->Count);
int m=s2->Count%4 ;
int fcount =s2->Count;
int k=0;
for(int i=0;i<sl->Count;i++)
{
if (i!=s2->Count-s2->Count%4-1||m==0) // 余数为0 (总数为偶数情况)
{
s2->Strings[j]="";
k=i+4;
while (i<k)
{
//s2->Strings[j]=s2->Strings[j]+sl->Strings[i]+"," ;
s2->Strings[j]=s2->Strings[j]+"0x"+sl->Strings[i]+"," ;
i++ ;
}
i=i-1;
j++;
//s2->Strings[j]=sl->Strings[i]+","+ sl->Strings[i+1]+","+sl->Strings[i+2]+","+ sl->Strings[i+3]+","+sl->Strings[i+4]+","+ sl->Strings[i+5]+","+sl->Strings[i+6]+","+ sl->Strings[i+7]+","+sl->Strings[i+8]+","+ sl->Strings[i+9]+","+sl->Strings[i+10]+","+ sl->Strings[i+11]+","+sl->Strings[i+12]+","+ sl->Strings[i+13]+","+sl->Strings[i+14]+","+ sl->Strings[i+15]+",";
//i=i+15;
//j++;
}
if (m!=0&&i==s2->Count-s2->Count%4-1) // 余数不为0 (总数为奇数)
{
s2->Strings[j]="";
for(int n=sl->Count-sl->Count%4;n<sl->Count;n++)
{
s2->Strings[j]=s2->Strings[j]+sl->Strings[n]+",";
}
for(int k=j+1;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
return ;
}
}
for(int k=j;k<fcount;k++)
{
s2->Strings[k]="" ;
}
s2->SaveToFile(Fil);
delete sl;
sl=NULL ;
delete s2;
s2=NULL ;
ShowMessage("ok");
帮我看看这段代码为什么有问题呀,搞了半天了郁闷死了 分可以再加
wanglovec
2006-08-14
打赏
举报
回复
谢谢深海美女 ,
加载更多回复(4)
Python 47个
字符
串方法
如果是,来学学本课程吧,本课程以讲解官网文档的方式,讲解 Python 47个
字符
串方法,涉及
替换
、删除、连接、查找、分割、格式化、编码、转换等
字符
串操作,带同学们系统学习 Python
字符
串方法。 &...
替换
字符
串中的一种
字符
为另一种
字符
—replace
replace方法可以将
字符
串中的一种
字符
替换
成另一种
字符
。正常情况下只会
替换
第一项。该方法并不改变调用它的
字符
串本身,而只是返回
一个
新的
替换
后的
字符
串。这个方法使得我们处理后端返回的数据为想要的格式后再进行展示。下面代码的意思是将
字符
串中的第
一个
,
替换
成;在进行全局的搜索
替换
时,正则表达式需包含。下面代码的意思是将
字符
串中所有的,
替换
成;...
字符
串将指定
一个
字符
替换
为其他
字符
或
字符
串
C语言 将
字符
串中指定的
一个
字符
替换
为其他
字符
或
字符
串
java
字符
串
替换
某一段
替换
_将
字符
串的一部分
替换
为另
一个
字符
串
有
一个
函数可以在
字符
串中找到子
字符
串(find),以及将
字符
串中的特定范围
替换
为另
一个
字符
串的函数(replace),所以您可以将它们结合起来以获得所需的效果:boolreplace(std::string&str,conststd::string&from,conststd::string&to){size_tstart_pos=str.find(...
把
一个
字符
串中特定的
字符
全部用给定的
字符
替换
,得到
一个
新的
字符
串。
试题描述 把
一个
字符
串中特定的
字符
全部用给定的
字符
替换
,得到
一个
新的
字符
串。 输入格式 只有一行,由
一个
字符
串和两个
字符
组成,中间用单个空格隔开。
字符
串是待
替换
的
字符
串,
字符
串长度小于等于30个
字符
,且不含空格等空白符;接下来
一个
字符
为需要被
替换
的特定
字符
;接下来
一个
字符
为用于
替换
的给定
字符
。 输出格式 一行,即
替换
后的
字符
串。 样例输入 hello-how-are-you o O
C++ Builder
13,822
社区成员
102,680
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章