|
fprintf(fp3, "%u %u %u %d\n", htonl(fNode2), htonl(tNode2), htonl(nNode1), htons(travelTime));
찍었더니 되네요 ^^;; 삽질 죄송합니다~~~
즐거운 주말되세요~~
★래미★ 님이 쓰신 글 :
: 파일 두개를 조합해서
: 데이터를 추출하고 다른 파일에 쓰는 프로그램을 만드는데요
: 간단할걸로 생각했는데,, 오랫만에 만지다보니 그런지 ㅠㅠㅠㅠ
:
:
: 두가지 문제가 있어요~
:
: 1) Label2->Caption 에 추출한 데이터 수를 표출하는데
: 폼이 리프레시가 안되고,, 중간에 캡션이 바뀌질 않아요
: (중간에 확인해보면 캡션의 데이터는 올라가있구요)
: 파일사이즈가 커서 너무 오래 걸려,, 작업과정을 보고싶은데....
: 전에 코딩된거 봐도 특별한거 없이 그냥 이런식으로 쓴거 같은데
: 뭘 빠트린건지요??
:
:
: 2) 아웃풋 파일에 마이너스 값이 찍히는데요
: 1140019500 1140010500 1140006200 64
: 1140019600 1140019400 1140005300 32
: 1140019600 1140019400 1140005800 64
: 1140019600 1140019400 1140015300 128
: 1140019700 -1728884536 1140005500 32
: 1140019700 -1728884536 1140006000 64
: 1140019800 -1728884536 1140005600 32
: 1140019800 -1728884536 1140006600 64
:
: unsigned long integer에서 바이트오더가 달라,, htonl()로 한번 변환시켜 출력하였습니다
: 마이너스가 아니어야 정상데이터인데 왜 마이너스값이 나올까요 ㅠㅠ
:
:
:
:
: void __fastcall TForm1::LinkTrafficInfoMatchWithSourceFile()
: {
: Screen->Cursor = crHourGlass;
: FILE *fp1;
: ulong linkID1, nNode1;
: unsigned short int travelTime;
: int nnode_count;
: int i,j;
: ulong a=0,b,c;
: bool is_data=false;
:
: FILE *fp2;
: ulong linkID2, fNode2, tNode2;
: ulong trash;
: char tmpchar;
: char LinkStream[25];
:
: FILE *fp3;
:
: if((fp1 = fopen(Edit1->Text.c_str(), "rb"))==NULL) return;
: if((fp2 = fopen(Edit2->Text.c_str(), "rb"))==NULL) return;
: if((fp3 = fopen(Edit3->Text.c_str(), "wt"))==NULL) return;
:
: Label2->Caption = "3"; //<------------------------ 강제로 세팅해봐도 표출이 안되네요 ㅠㅠ
:
: while(!feof(fp1)){
: fscanf(fp1, "%c", &tmpchar); //BOR
: nnode_count = GetBitField(tmpchar, 0, BIT_3);
: fscanf(fp1, "%4c", &linkID1);
: if(linkID1==0) continue;
: //is_data=false;
: fseek(fp2, 0, SEEK_SET);
:
: while(!feof(fp2)){
: fgets(LinkStream, 21, fp2);
: sscanf(LinkStream, "%4c", &linkID2);
: if(linkID1 == linkID2){
: sscanf(LinkStream, "%4c%4c", &fNode2, &tNode2);
: for(i=0; i<nnode_count; i++){
: fscanf(fp1, "%4c%2c", &nNode1, &travelTime);
: //a = htonl(nNode1); b=htonl(fNode2); c=htonl(tNode2);
: if(nNode1==0) break;
:
:
:
:
:
:
: fprintf(fp3, "%ld %ld %ld %d\n", htonl(fNode2), htonl(tNode2), htonl(nNode1), htons(travelTime)); //<------------------ 아웃풋 파일에 쓰는 부분입니다
:
:
:
:
: //is_data = true;
: Label2->Caption = a++; //<--------------------캡션에 증가시켜 뿌리는 부분입니다
:
:
:
:
:
:
:
: }
: break;
: }
: //if(feof(fp2) && is_data==false){fseek(fp2, 0, SEEK_SET);continue;}
: }
: fscanf(fp1, "%c", &tmpchar); //EOR
:
: }
:
: fclose(fp1);
: fclose(fp2);
: fclose(fp3);
: Screen->Cursor = crDefault;
: }
|