フィルターのクリア

replace only the first match

25 ビュー (過去 30 日間)
Andrew
Andrew 2013 年 1 月 21 日
コメント済み: Jan 2021 年 4 月 20 日
I have a txt with 2000 lines. i want to open the txt,scan,find EE1 and replace it(only the first EE1,not the second) then create a new txt and close...
this is something a found but it replace all the EE1 it found.I want to replace only the first match..
close all; clear; clc
% Set user specific paths and values
% ======================================================================
HFSS_EXE_PATH='C:\Program Files (x86)\Ansoft\HFSS12';
SCRIPT_PATH='c:\HFSS\scriptttt.vbs';
NEW_VBS_FILE='c:\HFSS\scrip.vbs';
% ======================================================================
cc=0;
for wg_y=6:1:8
cc=cc+1;
% Replace first occurrence of waveguide Y dimension
%vbs_str=file2str(SCRIPT_PATH);
fid1=fopen(SCRIPT_PATH,'r+');
vbs_str=fscanf(fid1,'%c');
old_str=('Array("NAME:XSize", "Value:=", "EE1"');
new_str=sprintf('Array("NAME:XSize", "Value:=", "%1.0fmm")',wg_y);
new_vbs_str=strrep(vbs_str,old_str,new_str);
% Create updated VB script file
fid=fopen(NEW_VBS_FILE,'w');
fprintf(fid,'%s',new_vbs_str);
fclose(fid);
end
Thank you...

採用された回答

Jan
Jan 2013 年 1 月 21 日
編集済み: Jan 2013 年 1 月 21 日
index = strfind(vbs_str, old_str);
first = index(1);
vbs_str = [vbs_str(1:first - 1), new_str, vbs_str(first + length(old_str):end)];
  5 件のコメント
prashanth u
prashanth u 2021 年 4 月 19 日
What is new_str at 3rd line@Jan?
Jan
Jan 2021 年 4 月 20 日
new_str is the variable from the code in the question.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with MATLAB についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by