MATLAB: Replace only the first match

replace

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…

Best Answer

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)];
Related Question