아래 텍스트 파일에서 문자열의 특정 부분을 검색하려고하는데 다음과 같은 텍스트 파일로 저장하려고합니다. MATLAB텍스트 파일에서 문자열의 특정 부분을 검색하여 MATLAB의 새 파일에 저장하십시오.
원본 텍스트 파일 그래서 기본적으로
D 1m8ea_ 1m8e A: d.174.1.1 74583 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=74583
D 1m8eb_ 1m8e B: d.174.1.1 74584 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=74584
D 3e7ia1 3e7i A:77-496 d.174.1.1 158052 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=158052
D 3e7ib1 3e7i B:77-496 d.174.1.1 158053 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=158053
D 2bhja1 2bhj A:77-497 d.174.1.1 128533 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=128533
, 내가 "A"
으로 "77"
입니다 시작 값을 표시하고 "496"
입니다 값을 중지 chainid, "1m8e"
으로 표시됩니다 pdbcodes ID를 검색하고자
RegExp에서 어떤 인덱스를 사용하고 각 행의 텍스트 파일 위치를 기반으로 해당 문자열을 검색하는지 알 수있는 방법이 있습니까?
결국 fprinf 문에 넣고 싶은 것은 1m8e, A, 77, 496
입니다.
pdbcode = '';
chainid = '';
start = '';
stop = '';
fin = fopen('dir.cla.scop.txt_1.75.txt', 'r');
fout = fopen('output_scop.txt', 'w');
% TODO: Add error check!
while true
line = fgetl(fin); % Get the next line from the file
if ~ischar(line)
% End of file
break;
end
% Print result into output_cath.txt file
fprintf(fout, 'INSERT INTO cath_domains (scop_pdbcode, scop_chainid, scopbegin, scopend) VALUES("%s", %s, %s, %s);\n', pdbcode, chainid, start, stop);
감사합니다 :
지금까지 내가 새 파일에 기록 파일 하나를 읽고 라인으로 각 라인, 또한 fprintf
한 Statment을 읽고 두 fopen
기능을 가지고있다.
을 시도해 볼 수도, 내가 이름을 정의 할 필요가 없습니다 'split ('_ /', 'fin')', 여기서'fin'은 내가 읽었던 파일을 나타 냅니까? 또한, 위의 방법을 사용하여 Regexp 시도하고 작동하지 않습니다. 대신 빈 문자열을 출력합니다. 제발 조언. – Jeiman
split 함수를 사용할 때 오류가 발생했습니다 :'??? "char"유형의 입력 인수에 대해 정의되지 않은 함수 또는 메소드 'split'. – Jeiman
죄송합니다. 분명히 split은 더 이상 사용되지 않습니다. 그에 따라 내 대답을 업데이트 할 것입니다. –