:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
16/05/27 17:16
명령어는 없을꺼고 굳이 코드를 구성한다면...
For1(Loop 갯수) { For2(Loop 갯수) { A 출력; File Line Change; } File Cursor 처음으로 복귀(1회만 수행하도록 처리. Check 변수를 따로 만들어서 쓰거나, 다른 방법 등으로 처리.); Line End 지점 확인; B 출력; File Line Change; } 당장은 이런 방식 정도만 떠오르네요... 그냥 For문 하나 써서 A 데이터, B 데이터를 한번에 출력하는건 안되나요?
16/05/27 17:36
답변 감사합니다.
for 문 하나 쓰다가 제가 조건을 여러개(대략 100개 정도입니다.)를 주어야 해서 한번에 뽑으려고 for2를 하나 더 구성했습니다. 하나 뽑고 (A) 다음 조건 넣고 뽑고 (B) 하기가 힘들어 한번에 돌렸더니 A 끝에 한줄 띄고 B가 오고 B 끝에 한줄 띄고 C가 오고 해서 열을 바꿔서 할 수 있는지 궁금했습니다. (A,B,C,... 들의 데이터 갯수는 점차 늘어납니다. 최소 400개 ~ 최대 12000개 까지 늘어나고 있어서요)
16/05/27 17:39
정확한 데이터형 구조를 제가 이해를 못해서 로직을 구성하기도 애매하네요...(......)
그런데 마지막 괄호가 좀 쇼크입니다;;;
16/05/27 17:47
위치에 따른 투과율을 계산하고 있습니다.
점점 길이가 늘어나서 저렇게 되네요 ㅠ ㅠ 우선 수작업으로 하는 데까지 하고 있습니다. 해보고 적당하게 데이터 수를 줄여서 해야겠어요. 처음으로 복귀 시키는 것도 한번 찾아서 적용 시킬 수 있다면 해보겠습니다 ! 답변 감사합니다 :)
16/05/27 17:49
처음으로 복귀시킨다는 의미를 어떻게 해석하셨는지 모르겠는데, 제가 말씀드릴려고 했던 것은 File Write Cursor 위치 이동을 이야기하는 것이였습니다.(위치 이동 관련은 C언어 책을 찾는게 빠르실 것으로 사료됩니다. 저도 C언어, 특히 파일 처리는 할 일이 없다보니 다 까먹었어요;;;) 저게 1회만 실행되어야 하는 이유가 For1문 안에 있는데, 저걸 계속 돌리면 계속 첫번째 줄에만 추가되는 사태가 발생하니까요.(...)
16/05/27 17:46
솔직하게 말씀드려서, 첫번째 제 리플은 그냥 대충 생각난대로 쓴거라 제가 봐도 저런 식으로 코드 구성하고 싶지는 않습니다.(...)
몇가지 전제가 허용된다면, 차라리 다르게 구성하는게 속편하다 싶을 정도네요. 그런고로, 해당 전제를 허용한다는 이야기를 해주시면 한번 로직을 짜보겠습니다. 1. 결과 느리게 나와도 됨. 2. A,B,C.....Z, AA로 가더라도 각 데이터가 한번에 연산되어서 연속적으로 순차 처리되는 방식임. 뭐, 이정도 전제만 허용되어도 첫번째 리플 코드보다는 훨씬 깔끔하게 짤 수 있을꺼 같긴 합니다. ......재귀함수를 써야 할지도 모르겠지만요.
16/05/27 18:10
첫 리플에 달아 주신 걸로 구글링 해봤는데 파일 내에서 첫 줄로 돌아가 다시 덮어쓴다는 것과 같은 말씀이시죠? (결국 마지막 조건에 대한 결과만 출력이 되겠네요.)
처음 소스를 만들 때, 이렇게 할 줄 모르고 진행 한거라서 힘들지만 수작업으로 하겠습니다. ㅠ ㅠ 몇 가지 언급해주신 내용(?)을 가지고 (제 실력으로 다시 짤 수 있다면) 수정해보겠습니다. 시간내주셔서 정말 감사합니다. ㅠㅠ
16/05/27 18:11
쪽지로 개인 메신저 주소 드릴테니까, 이해 안 가시면 그쪽 주소로 등록해주시거나 메일을 주시면 답변드리도록 하겠습니다.
웬지 이대로 끝내면 책임감도 없어보여서 좀 찝찝해서 말이죠... 그리고 "첫 리플에 달아 주신 걸로 구글링 해봤는데 파일 내에서 첫 줄로 돌아가 다시 덮어쓴다는 것과 같은 말씀이시죠?" => 이 의미가 잘못 전달된 것 같은데, 파일 작성 모드에 따라 달라지는데, write 모드로 해놓고 File Cursor를 일일히 이동시켜서 NULL인 첫번째 위치를 데이터 기록 시점으로 삼아야 한다는 의미입니다. 말로 하면 솔직히 좀 복잡한 이야기이긴 합니다... (그래서 저 로직 쓰고 싶지 않다는 의미였습니다. 저건 그냥 생 노가다에요. 특히나 말씀하신 데이터 구조라면 쓰레기 로직이나 마찬가지죠.)
16/05/28 18:18
이미 늦은것 같지만...
성능이 느려도 상관없으면 분할해서 점령하는 것을 추천합니다... A데이터만 result_a.txt, B데이터만 result_b.txt, C데이터만 result_c.txt 로 저장한 후 각각의 파일을 읽어서 ressult.txt에 하나씩 쓰는 방법이 있습니다. C라고 하셨으니 FP_1 = fopen("result_a.txt","r"); FP_2 = fopen("result_b.txt","r"); 이런 식으로 파일을 여러개 읽어서 하나에 쓰는 방법도 있습니다.
|