ファイルから固定長 (10 文字と 32 文字) の 2 つの可変文字列を取得し、それらを変数として保存して、後でプログラムで渡し、新しいファイルに書き込みたいと考えています。ユーザー入力から新しいファイルにデータを書き込むことはできますが、データを見つけて使用するために保存する方法がわからないため、ユーザーが手動で42文字を入力してエラーのリスクを冒す必要はありません。文字列は内容が異なり、ファイル内の位置も異なる可能性がありますが、常に一定の文字列 "Serial Number =" の後に続きます。刺し傷が始まる既知のオフセット位置がある場合、これにより簡単になりますか? 私は fget または fread を考えていました...しかし、実際の例を得ることができません。
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *f;
FILE * pFile;
char sn[11];
char uuid[33];
if (f = fopen("test.txt", "rt"))
{
fseek (f,443,SEEK_SET); //file offset location to begin read
fread(uuid, 1, 32, f); //Read the data of 32 chars
uuid[32] = 0;
fseek (f,501,SEEK_SET); //file offset location to begin read
fread(sn, 1, 10, f); //Read the data of 10 chars
sn[10] = 0;
fclose(f); //Close our file
printf("The 32 character UUID:\n%s\n", uuid); //Show read/extracted Data
printf("The 10 character SN:\n%s\n", sn); //Show read/extracted Data
pFile = fopen ("testfile.exe","r+b"); //Open binary file to inject data
fseek (pFile,24523,SEEK_SET); //1st file offset location to begin write
fputs (sn,pFile); //Write our data!
fseek (pFile,24582,SEEK_SET); //2nd file offset location to begin write
fputs (uuid,pFile); //Write our data!
fseek (pFile,24889,SEEK_SET); //3rd file offset location to begin write
fputs (uuid,pFile); //Write our data!
fclose(pFile); //Close our file
printf ("Finished\n");
}
return(0);
}
私は週末を通してそれを読んで読みましたが、あるファイルからデータを読み取り、別のファイルに挿入することで、望ましい結果が得られました。これはうまくいきますが、最善の方法ではないかもしれません。携帯電話から送信したため、ソースにアクセスできなかったため、誤ってタグ付けされた投稿について事前にお詫び申し上げます。すべての入力に感謝します。もっと歓迎します。自分が何をしているのかを理解したので、文書化しようとしました。