파일의 특정라인의 특정 부분만 읽는 함수좀 알려주세요.
글쓴이: kimyh / 작성시간: 금, 2006/10/27 - 3:59오후
예를들어 aaa.txt의 파일내용이
$memberid = "kkkkk";
$memberpassword = "hhhhh";
$membeip = "221.234.345.45"; 이라고 할때
파일을 fopen() 함수로 연뒤
두번째 라인의 따옴표안에 있는 hhhhh만 읽고자 할때 사용하는 함수좀 알려 주세요.
fread()나 fgets()는 처음부터 읽고자하는 부분까지만 읽을수 있고
라인설정이나 파일 중간의 특정위치 설정을 못하겠더군요.
fseek()로 설정을 하면 읽는 시작위치설정은 가능 한데 읽는 끝을 지정할수가 없더군요.
더구나 $memberpassword = "hhhhh"; 이라인은 memberpassword가 5캐렉터에서 10캐렉터까지 변동하여 정확한 읽기종료
포인터의 위치를 알수가 없다는겁니다.
검색을 해봐도 두무지 찾을수가 없군요.
파일 전체를 읽는 내용들로 제가 원하는답을 구하지 못하겠습니다.
도움 주시면 감사하겠습니다.
아래는 간단한 해당부분만의 소스입니다.
if((stream = fopen("aaa.txt", "r")) == NULL);
fseek(stream, 13, SEEK_CUR);
ret = fread(buf, 1, 80, stream);
printf("%s\n", buf);
Forums:
Re: 없습니다.
라인 하나하나 읽어서 해당 부분을 찾아서 읽는 루틴을 작성해서 처리해야겠죠.
fgets(.., buf, sizeof(buf));
fgets(.., buf, sizeof(buf)); 한번 호출하고
fscanf 로 '=' 다음 문자의 것을 얻으면 되겠네요.
fscanf 참고
http://kldp.org/node/72882
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
답변 주신데 감사드립니다.
/* 파일을 연다 fopen */
stream = fopen("aaa.txt", "r");
/* 한 라인을 buf로 읽는다. fgets*/
fgets(buf, sizeof(buf), stream);
/* '=' 다음 문자내용을 찾아 낸다. */
fscanf(stream, "%*[^=]=%s", stream);
printf(buf);
내용으로 처리하면 buf에 있는 값만 읽혀지는군요.
fscanf()처리후 내용확인을 어떻게 하는지요.
fscanf()함수는 지금 공부하고 있습니다.
살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.
살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.
fscanf(stream, "%*[^=]=%s",
fscanf(stream, "%*[^=]=%s", stream); 에 약간의 오류가
fscanf(stream, "%*[^=]=%s", buf);
로 바꿔보고 해보세요.^^
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
감사합니다.
알려주신대로 해서 성공했습니다.
바쁘신중에도 계속 좋은 답변 주신데 다시한번 감사드립니다.
살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.
살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.
댓글 달기