0
我在自己設計的設計中使用了PIC32MX,並且所有工作都完美無缺。從文件的某個部分讀取PIC32MX
現在我想實現它基本上是從文件中按順序讀取,直到我找到人物的某一幀的特徵,所以我做:
while((readedBytes = FSfread((void *)&c,sizeof(char),1,ephpubData->filetouart) != 0) && G_RUNNING && ephpubData->readedBytes < 2520){
privData->txBuffer[privData->txBufferPos++] = c;
ephpubData->readedBytes = ephpubData->readedBytes + readedBytes;
if (privData->txBufferPos == TX_BUFFER_SIZE){
if (verifyDate (task) == 1){
*gpsState = GPS_STATE_VERIFY;
ephpubData->count++;
break;
}
FSfseek(ephpubData->filetouart , ephpubData->readedBytes , SEEK_SET);
privData->txBufferPos = 0;
}
}
第一次時,發現框架(使用verifyDate函數),一切都很好,並打破句子。 當在while循環中讀取第二次時(在關閉/重新打開文件並在代碼中執行其他操作之後),它會再次返回到第一個位置。 所以我想保存找到的最新位置,直到斷句。我已經嘗試在每次迭代中使用查找功能
while((readedBytes = FSfread((void *)&c,sizeof(char),1,ephpubData->filetouart->seek) != 0) && G_RUNNING && ephpubData->readedBytes < 2520)
但它給了我一個錯誤。
; ch = getc(p-> filepointer); ... if(ch == EOF)break;'可能會更簡單。另外,您應該將'G_RUNNING && ephpubData-> readedBytes <2520)'移到條件的開頭,以避免在實際上不需要時讀取某個字符。 (「短路」) – wildplasser
它是否保存文件中以前的有效位置? – scuba
getc()和fgetc()按順序讀取一個字符(如果有),所以下一次調用將獲得下一個字符:不需要查找。 – wildplasser