replace only the first match

10 views (last 30 days)
Andrew
Andrew on 21 Jan 2013
Commented: Jan on 20 Apr 2021
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...

Accepted Answer

Jan
Jan on 21 Jan 2013
Edited: Jan on 21 Jan 2013
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 Comments
prashanth u
prashanth u on 19 Apr 2021
What is new_str at 3rd line@Jan?
Jan
Jan on 20 Apr 2021
new_str is the variable from the code in the question.

Sign in to comment.

More Answers (0)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!