如何将一字符替换为另一个字符(在线急等)

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 打赏 收藏 转发到动态 举报
写回复
用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)

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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