質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

1740閲覧

C言語  Sレコード jpgのtxtファイルを読み込みたい

kokok

総合スコア145

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2019/08/23 01:11

編集2019/08/23 01:13

c

1#include <stdio.h> 2#include <stdlib.h> 3#pragma warning(disable: 4996) 4#define ROWREADMAX 256 //一行の読み込み最大文字数 5#define BUFFER 1024 6#define ADDRESSBYTE2 2 7#define ADDRESSBYTE3 3 8#define ADDRESSBYTE4 4 9#define FILE_OPEN_ERR 0x01 //ファイルオープンエラー 10#define FILE_SPECIFIED_ERR 0x02 // ファイル指定エラー 11#define OPT_ERR 0x04 //オプションエラー 12//オプション 13typedef struct { 14 char* infilename; 15 char* outfilename; 16 char input_flag; 17 char output_flag; 18 char help_flag; 19} opts_t; 20//プロトタイプ宣言 21analysis_srecord_change_binary(char readline[], FILE* wfile); 22unsigned char srecord_change_binary(char* ascdata); 23//オプションの解析 24int opts_analisys(int argc, char* argv[], opts_t* opts) { 25 int err = 0; 26 int cnt; 27 FILE* file; 28 for (cnt = 1; cnt < argc; cnt++) { //引数の数ループ 29 if (*argv[cnt] == '/') { //引数の最初の文字が/なら 30 switch (*(argv[cnt] + 1)) { 31 case'r': 32 case'R': 33 if ((file = fopen(opts->infilename, "r")) != NULL) { //ファイルがあれば 34 } 35 else { //ファイルがなければ 36 err |= FILE_OPEN_ERR; 37 } 38 break; 39 case 'i': 40 case 'I': 41 if (*(argv[cnt] + 2) == '=') { //オプションに= があった場合 42 opts->infilename = argv[cnt] + 3; 43 } 44 else { 45 opts->infilename = argv[cnt] + 2; 46 } 47 break; 48 case 'o': 49 case 'O': 50 if (*(argv[cnt] + 2) == '=') { 51 opts->outfilename = argv[cnt] + 3; 52 } 53 else { 54 opts->outfilename = argv[cnt] + 2; 55 } 56 break; 57 case '?': 58 opts->help_flag = 1; 59 break; 60 default: //オプションが無いとき、エラー 61 err |= OPT_ERR; 62 break; 63 } 64 continue;} 65 if (opts->infilename == NULL) { 66 opts->infilename = argv[cnt]; //引数の一つ目のファイル名はインプットファイル 67 } 68 else if (opts->outfilename == NULL) { 69 opts->outfilename = argv[cnt]; //引数の二つ目のファイル名はアウトプットファイル 70 } 71 else { 72 err |= FILE_SPECIFIED_ERR; //ファイル指定エラーのビットを立てる 73 }}return err;} 74int main(int argc, char* argv[]) { 75 opts_t opts; 76 char readline[BUFFER]; 77 int result = 0; 78 FILE* wfile; 79 FILE* file; 80 //構造体の初期化 81 opts.infilename = NULL; 82 opts.outfilename = NULL; 83 //opts.input_flag = stdin; 84 //opts.output_flag = stdout; 85 opts.help_flag = 0; 86 result = opts_analisys(argc, argv, &opts); //オプションの解析 87 if ((result != 0) || (opts.help_flag)) { 88 if (result & FILE_SPECIFIED_ERR) { 89 fprintf(stderr, "ファイル指定が3つ以上あります\n"); 90 } 91 if (result & FILE_OPEN_ERR ) { 92 fprintf(stderr, "ファイルが存在しません\n"); 93 } 94 if (result & OPT_ERR) { 95 96 fprintf(stderr, "オプションの指定が間違っています\n"); 97 } 98 if ( opts.help_flag) { 99 fprintf(stderr, "Syntax: srec2bin[<opts>] [[/ i[=]]<inpath>] [[/ o[=]]<outpath>] [<opts>]\n"); 100 fprintf(stderr, "Function : converts S record to binary file\n"); 101 fprintf(stderr, "Options :\n\n"); 102 fprintf(stderr, " /r 出力ファイルが存在するとき、強制的に上書きをする。\n"); 103 fprintf(stderr, " /i[=] 入力ファイルパス(デフォルト = stdin)\n"); 104 fprintf(stderr, " /o[=] 出力ファイルパス(デフォルト = stdout)\n"); 105 fprintf(stderr, " /? 使い方の表示\n"); 106 } 107 return;} 108 if (opts.outfilename != NULL) { 109 if ((wfile = fopen(opts.outfilename, "w")) != NULL) { 110 } 111 else { 112 fprintf(stderr, "ファイルが開けませんでした"); 113 return 0;}} 114 else { 115wfile = stdout; 116 } 117 if (opts.infilename != NULL) { //コマンドラインからファイルの入力があれば 118 119 if ((file = fopen(opts.infilename, "r")) != NULL) { //ファイルがあれば 120 } 121 else { //ファイルがなければ 122 fprintf(stderr, "ファイルが開けませんでした"); 123 return 0; 124 } 125 } 126 else { 127 file = stdin; 128 } 129 while (fgets(readline, ROWREADMAX, file) != NULL) { 130 131 analysis_srecord_change_binary(readline, wfile); 132 // puts(readline); 133 } 134 if (opts.infilename != NULL) { 135 fclose(file); //ファイルが開かれたらクローズ 136 } 137 if (opts.outfilename != NULL) { 138 fclose(wfile);} 139} 140//Sレコードを解析しバイナリに変換 141analysis_srecord_change_binary(char readline[], FILE* wfile) { 142 int cnt = 0; 143 char stype; 144 int recsize; //レコード長 145 int addsize; //アドレスの長さ 146 int datasize; //データの長さ 147 unsigned char checksum = 0; 148 static int row = 0; 149 char bindata; 150 row++; //読み込みが何行目か 151 if (readline[cnt] == 'S') { //初めがSなら 152 cnt++; 153stype = (readline[cnt]); //タイプを格納 154 switch (stype) { //タイプによってアドレスの長さ格納 155 case '0': 156 case '1': 157 case '9': 158 addsize = ADDRESSBYTE2; 159 cnt++; 160 break; 161 case'2': 162 case'8': 163 addsize = ADDRESSBYTE3; 164 cnt++; 165 break; 166 case'3': 167 case'7': 168 addsize = ADDRESSBYTE4; 169 cnt++; 170 break; 171 default: 172 fprintf(stderr, "Sレコードではありません"); 173 exit(1);} 174 recsize = srecord_change_binary(&readline[cnt]); //レコードサイズを取得 175 cnt += 2; 176 checksum += recsize; //チェックサムにレコードサイズの部分を足す 177 for (int dcnt = 0; dcnt < addsize; dcnt++) { //アドレスをバイナリに変換してチェックサムに足す 178 bindata = srecord_change_binary(&readline[cnt]); 179 checksum += bindata; 180 cnt += 2; 181 } 182 //レコードサイズから(アドレスサイズ+1(チェックサム))を引き、データサイズを算出 183 datasize = recsize - (addsize + 1); 184 //cnt += addsize; //カウントをアドレス分進める 185 for (int dcnt = 0; dcnt < datasize; dcnt++) { 186 187 bindata = srecord_change_binary(&readline[cnt]); //データをバイナリに変換 188 checksum += bindata; //2バイト進める 189 fputc( bindata, wfile); 190 //printf("%c", bindata); 191 cnt += 2; 192 } 193 checksum += srecord_change_binary(&readline[cnt]); //チェックサムをチェックサムに足す 194 if (checksum != 0xFF) { //チェックサムでデータの確認 195 196 printf("\n"); 197 fprintf(stderr ,"%d行目のデータがおかしいです\n%s",row,readline); 198} 199 } 200 else { 201 fprintf(stderr, "Sレコードではありません"); 202 } 203} 204//Sレコードをバイナリに変換 205unsigned char srecord_change_binary(char *ascdata) { 206 207 unsigned char bin_H; 208 unsigned char bin_L; 209 unsigned char bin_HL; 210 bin_H = (*ascdata - '0'); 211 if (bin_H > 9) { 212 bin_H = bin_H - ('A' - ':'); 213 } 214 bin_H = bin_H << 4; 215 bin_L = (*(ascdata + 1) - '0'); 216 if (bin_L > 9) { 217 bin_L = bin_L - ('A' - ':'); 218 } 219 bin_HL = bin_H |= bin_L; 220 return bin_HL;}

上記のコードで
S0030000FC
S1230000FFD8FFE000104A46494600010101006000600000FFE100664578696600004D4DC8
S1230020002A000000080004011A0005000000010000003E011B00050000000100000046BF
S123004001280003000000010002000001310002000000100000004E00000000000000607B
S12300600000000100000060000000017061696E742E6E657420342E302E3500FFDB004357
S12300800002010102010102020202020202020305030303030306040403050706070707F5
S12300A006070708090B0908080A0807070A0D0A0A0B0C0C0C0C07090E0F0D0C0E0B0C0CF6
S12300C00CFFDB004301020202030303060303060C0807080C0C0C0C0C0C0C0C0C0C0C0C1E
S12300E00C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C7C

.
.
.
.
上記のようなSレコードの jpg txtファイルを読み込むと
リ・ JFIF  ・ fExif MM *     >   F(    1   N  paint.net 4.0.5 ロ C  
このような感じで表示されてしまいます。
txtファイルをjpgで読み込むときはどのようにすればよいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takabosoft

2019/08/23 01:35

Sレコードが何なのかわかりませんが、そこからバイナリー(unsigned char[])には変換できたわけですよね。で、この中身がJPGのバイナリーだと思うのですが、これを具体的にこのあとどうしたいのでしょうか?
kokok

2019/08/23 01:41

もともとの画像を表示したいと思ってます。
takabosoft

2019/08/23 01:42

どこに表示したいのでしょうか?実行環境は何なのでしょうか?
takabosoft

2019/08/23 01:45

「もともとの画像を表示するプログラムを実装したい」、という意味合いであっていますか? (ただ表示したいだけならファイルを抽出して、適当にファイルをダブルクリックすればビューア等が勝手に表示してくれるでしょうから)
kokok

2019/08/23 01:50

Sレコード形式の jpg テキストファイル から jpgの画像ファイルを作ることは無理なのでしょうか?
nob.

2019/08/23 01:58

Sレコードもそのプログラムも「正しい」のなら、出力ファイルを XXXX.jpg にするだけじゃないですか? 出来た XXXX.jpg を普通に写真を表示するような方法で写真(イメージ?)が表示されると思いますが? そうならなかった、ということですか?
kokok

2019/08/23 02:11

画像がくずれてしまってます。。
jimbe

2019/08/23 12:50

可能でしたらどこかにそのテキストファイルをアップロードして頂ければ, こちらで実行して試せるのですが, 如何でしょうか.
kokok

2019/08/23 13:55

S0030000FC S1230000FFD8FFE000104A46494600010101006000600000FFE100664578696600004D4DC8 S1230020002A000000080004011A0005000000010000003E011B00050000000100000046BF S123004001280003000000010002000001310002000000100000004E00000000000000607B S12300600000000100000060000000017061696E742E6E657420342E302E3500FFDB004357 S12300800002010102010102020202020202020305030303030306040403050706070707F5 S12300A006070708090B0908080A0807070A0D0A0A0B0C0C0C0C07090E0F0D0C0E0B0C0CF6 S12300C00CFFDB004301020202030303060303060C0807080C0C0C0C0C0C0C0C0C0C0C0C1E S12300E00C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C7C S12301000C0C0C0C0C0CFFC000110800A8008203012200021101031101FFC4001F0000015F S12301200501010101010100000000000000000102030405060708090A0BFFC400B51000E6 S123014002010303020403050504040000017D010203000411051221314106135161072240 S12301607114328191A1082342B1C11552D1F02433627282090A161718191A25262728290F S12301802A3435363738393A434445464748494A535455565758595A636465666768696A94 S12301A0737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A88A S12301C0A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E340 S12301E0E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F010003010101010101010125 S1230200010000000000000102030405060708090A0BFFC400B511000201020404030407F3 S123022005040400010277000102031104052131061241510761711322328108144291A1C6 S1230240B1C109233352F0156272D10A162434E125F11718191A262728292A353637383921 S12302603A434445464748494A535455565758595A636465666768696A73747576777879EA S12302807A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B540 S12302A0B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EA10 S12302C0F2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00FD2FB7B4CDEFE0692E5B S12302E0ED4806B520B6CDEF4E80D1796C315FA1731F07638BD4ECF696AE7B51B7FBD5DB14 S1230300EAB698DD5CBEAB6B966AD612309A393D421AC3D49315D56A16DF8D73FA95B64D0B S123032074C2462D9CBEA1164D61DFC5C9E2BA6D4ADB19AF3CF8BBF116DFE1E690CC024FA5 S1230340A94A85ADE027FF001E6F451FA9E07723ABDA4631E696C2D6E731F183E2E691F075 S1230360A60B38EFA62350D5A75B4B08150BF993B86F2C3E3EEAB1523355FE19FC4AD37EC0 S12303802E784E3D4F4E6DADC2DC5BB1FDE5AC98E55BFA1E847E207CC3F1FAFEE3E220F02A S12303A0FDF5F15BAD36EBC57A6453492E737E5EE046C23C1188D4360B743F7578C9AE2761 S12303C0E1A7C4FD5BF67EF1B433DB4CD258B37900CCD959573FEA263FFA03F5CE01E7EF32 S12303E079D473473AAEEBDD3B5616F4AEB73EE8BAB7DB59F711607E34BE02F1F699F15BD1 S1230400C2B0EADA5C998DBE49A16FF596D277471EBEFD08E455BBAB5209AF762EEAE8F3FB S12304209DD3B331A78AAA4B19AD5B8831DAA9CB05688933658C9350491D68C9062AB4910D S1230440735714432998F9ED4558F2BFCE28AA323F530E90B6B2EE0C4F18C62A8DE8D84D2D S1230460741790E3358B7E81B35F1E8F7DDAC73BAA0CE7E5AE6F588306BA9D4A239AE77569 S123048035396E2B481848E6351B7C86AC1BF8319AEA2FA3CD79EFC65F89167F0C34269AB3 S12304A06DB3DF4CA7ECB6D9C1908FE23E883B9FC07B6FCEA3AB399AB9C9FC5FF88F6BF011 S12304C0E74D1BB6CFA85D022D6DB3F7B1FC4DE8A3F53C0EF8F92FC4FA8DC7C48B8BEBFB43 S12304E0EB8926D3E7770EEAD86D45871B108FBB02E3048FBD8DABC649EB2E7FB43E39F878 S1230500B1AEAF24926B19F265941DBF6FC100C698FBB02F4247DEC1038C933EA3E1D8EC90 S123052026BA11ED96456748820F9220320003A76E0740067B62BCBC4621D576E86F4E16B3 S1230540F53C8BF68AD35AC3E1FE937930DB35AF88F4475444DAB020D42DC018FE118230F2 S12305603DC671902BC97C65046FAD6A16B322491FDA2585D186430DC410457B8FED8F688F S1230580BA67ECEFAB4E36349677FA75CBC84F08C97F0B6012465B86F5E8DC1C4857C53E2F S12305A027C7F63F89BE208FB47AA5CA8FFBFAD4616DCCFD17EA7753FE1AF57FA127C18F23 S12305C08BDAB7ECFF00E2D8678666B8D3AE18425657F96743D2194FF7BFB9275CF079FB90
kokok

2019/08/23 13:57

S12305E0DF71781FC67A5FC4FF000BC3AB6952F990C9F2BA37125BBF7471D987EA391D6B29 S1230600E036863BC825865559229176B238C8607B1ADCF805F1EF56F817E315DDBA4B59BD S123062076A4F048F95B84CE154B7AFF00724EB9F95B9FBDED61711EC9F2CBE1FC8E3C456D S12306402F69AC773EE7BBB1C0E959D716DCD79CC1FB75F80752F899A2E829AB5B793AFD90 S1230660BA98672D8FB2DC1247933FFCF32781CF7F620D7AD5E58EC63902BD8A35A9D4BF79 S123068023BD8F36A539C2DCCAD73066871FC354E58B15B573698154278315D08CDC8CEFE4 S12306A02E8AB060E7FF00AD45067A9FAB37B6ECE4E17358D7F6120466DBC56EDC1E6A05A3 S12306C0BB5B7CC72AE6293EF71CD7C4F335B1F4514A4715A94781C8AE7F53B7C83C57AA5F S12306E0DF7C3E8755823786630F98D85DC339AF27FDA275B8FE01F873EDFA98137DA98CB7 S12307007630AB0125DBFA63B28E32DD00F720171C441BB27A93568CA2AFD0F3DF8C3F12BD S1230720ACBE16787DAEAE009EF26CADADAAB61A76F7F451C64FF5AF8E7C4DA8EA1F1BFC8A S12307404377A85F4CF2E9F3B8899D7E5FB7738F2D3FBB6EB92091F7F9038DCC773C55AE45 S12307606A5F1E7C5136A17F234DA7CD2EC3B090B74AB9FDD478FBB0039048E5CE40E37384 S12307801D8B4D1D63B70ABB23532619C6155157B0F40028E4741C0AC2BD573D3A18C6298E S12307A06A67DC2C7617C2D6C400D1C422924418039FBAB8EC30071C0E9EE31EE22F3F4C32 S12307C0F2EDD0EE91482E3ABE4F41C74E579C64E571D5037450E91E6DC5C602C7047B4301 S12307E01701770009E73D17AF07D0E780D84B9D0E4B8D0CA98CAA1840607EF3F383BB202A S1230800F1B988DB83CB60ABB31865E7BD8353C4BF6E3B45B7FD8FBC75245E594B5B18E561 S1230820320202FCB346E02F23A84EA33B82700AA6E8BC27E38AFD9FE30F89D7FBDA94CE84 S12308403FE04DBBFAD7D29FB74D97DA7F632F89C96F9758FC3D752BC801390A46E23E6F3B S1230860BBBD40666620B00A4CD2058A2F9B7E3A49E7FC51D566ED74B6F719F5F32DE27F92 S1230880FD9ABA3092FDE3F43A68BFDD7CDFE48E76297E61F91ACCD5EDFCDFDD5F32B5AC99 S12308A0CC560BA2A3FD1CB71E5C83BA1E80F43C0382031BC836B29EDEB505EDA4D04B2513 S12308C0C40A6EA3906DB9B37F984CB8C6533C06C76E8C3D0F35E9F4335B9F2BF8CAD6EB5C S12308E0C25F12EE2DA691BF7AFF003618F552475EA48E39EB835FA19FF04E6FDB79FE2165 S1230900C767F0EFC5B71E66B11C7B347BF76E6F11467C8909EAE147CA7F880C75033F07E9 S1230920FED2FA1DBE9DE2586FAD66792D6421E36624B20231B0E79E181183C8E87A557F59 S123094009789AE7C3DAA69BAD69D334577A6CF15EC0E870C9246C1C7F2AF0B0F8A9E0F1C2 S12309602E51DAFAAEEBFAD8F66B61E18AC3DA5BFEA7ED55E59953D2B32E2DEB6FC25E205E S1230980B6F895E02D1BC4367B5ADB5CB186FA3C7612206C7E1923F0AAB7B62518D7E91192 S12309A069ABA3E16578BB330CDBF3FC3F9D1578DBF3DE8AAB13A1FAA70693F69BB55F31EC S12309C05558FDE23815B307C35FED6B161E643BF24A90DDBEB58F0C9E5DCC67FDAEFD05A1 S12309E07A6691A5B5E59A346D191D09518CD7E678DAD2A76699F6D81A30A97563CAFE26DE S1230A005CC7F03BE1A6A9E24D4249A7B7D1E1F3BC84C6667242A20CF1F331033E87BE31FD S1230A205F9AFF0016FE24EBDFB54F8FDF57D627DDA4EE312451B308DE35FF009630F3F265 S1230A40C21B3B9BAC872071B8D7DD9FF053E9E44F835A4785E4B893CBF106A425BA443818 S1230A60F360814B9463D429768F38C120632326BE308B445B7B3C2A88E358C20C2E371690 S1230A80E8001DB007031C7A0A30B2738FB491CF8FB427ECE26669FA2A5ADA21F9638E3859 S1230AA0B73B018183801463A0EDC75E838EAE8B4C061B3F30148D46E5403259B000E146FE S1230AC04B12C3007A8C6495AD7BEB4114534922FCD8F2E38C11E9C9E78EFC9380307A00A7 S1230AE04D4B3D8A5BDDAB5C2B49318CA471AA96662CC46C552A49270C0E4124EE0558EF64 S1230B008C6F23CF316D2D96382EAEA6658A2858B2FCC36A6101072081BB0A0E430000055A S1230B204AAA89A3CBD69DAF344F27CB31C2B1AA088AFCCE420FBC3E4E8849D9FBB010E5A2 S1230B40CDBC24F9DB7346F75A7CD77330F94BBC6031654DC58A904162CCC465586F662306 S1230B60747E6106E63C6F10482FB437F236C3662147329289E644920CB86398D2157C9F92 S1230B8031B742AF923ED5365867CAD93291E6DFB665A477BFB23FC4EB7558E4FF008A6A7A S1230BA0EE4762C9E5C5FE8EEB1B167555C951B51B60661F25B45147990FC89F16EE3CDF47 S1230BC010E9F3FF00CFE787F47B9FAEFD3AD8D7DADFB4E3C361FB3978FADC9681DBC3BAE2 S1230BE0872C7C978FCEB6705899B2D0097232F26EBCB9CE310C6768F867C6B746EFC3FE07 S1230C0003B96EB77E08D0E4CFD2CA34FF00D92B7C3E956DE47461F5A4FD7F429DBCA1E26B S1230C205FAD3751D19AEE75B8B59BECF7B0AE11CE4C722F528E3BA93DFA83C8EE0D6B3954 S1230C407F73F8D4DA969FFDB10C3B6E26B5B885B7C13C67946C6391D194F42A7820F6E048 S1230C608F563AA25E8CF20FDA874BB6D67455BCFB3B5A5FC636DDC24FCDB979561D981113 S1230C809C38EA060E08C0F29F0BDF79FA6A941B597E5DA4F6ED5F417C62887883C1935A45 S1230CA0EA56F0C3AB59E648997FD5DC467866898F38E4128795F7186AF9B7C3172B6F3CE3 S1230CC0D6FB76F9671CF53838AF03318DAB5FB9EDE0657A36EC7EBD7FC1293E29AFC52F39 S1230CE0D922CF4C7706F7C1B772695229FBDE51FDEC248FF75CAFFC02BDE754B1DA3F1AF6 S1230D00FCFBFF008227FC541E1EF8DDE24F08CD22887C51A67DAE007BCF6CC4E07D6391B6 S1230D20FF00EF9AFD13D5A02F2B7A76AFB6C96BFB5C2C5BE9A7DDFF0002C7C966D47D9E8E S1230D40264BBEBF7FFC1B9CD35A9DC68AD13073D68AF58F2EE7E9B1B1F324C6E1D7BD7AD1 S1230D60278675A8EDF4B4B68C471B2A70C3D6B85DBE6CBC10AA3A9AE8741D2710798F2ACE S1230D8080BC920F41D735F96E32D38FBC7DEE0A528CAF13E4CFDBDBC5B278BBE322D8C9A0 S1230DA023490E8B651DA841D5E590F98FEDF7767E5CD7894DA7E6EA3276BCD24995407EC3 S1230DC05451DFD71C0E7A9EDD80EB7E236B4FE36F897AD6A8AC6492FAF269CB373E546110 S1230DE0B6A2E33FDDDBF2FE78AABA77872E2E430B48E47F2632F2DC6DDCA84E09E72033F6 S1230E0074EE00C8E572857685A9C123CEACE556A396E72F736AB6CE8ABFBEBAB898301981 S1230E20DB801B8CE0FCA385000E725400495F35B3E971594B3DC5C379923AA4200504C9A6 S1230E409F9762AE186D27098DAC090176CAC05BC5EB7A67ECD1AF4BA3DBCD6F6B0F9BE5F9 S1230E60F9DE54F3796EE31B59DB20600DC41DDB71B8A90B936CF73C2DF01965379FDAD6BE S1230E80B7D1EA30C92C4F3FCC4CACB1E1A34405581118C145657D9FEB64B58BF7271963B6 S1230EA029A5BEC691CBEB49A56B5CF9EAE7449B56D1DFED0BB8491CC561C8704F594B6E5D S1230EC06C391C799B9FCB5C0FB44AC40B7147C6D24D0D95D358C725C4907977D25C093690 S1230EE0C76EA080B72D348A0280385BA994003E5B6840C13EF9E10FD9FDFC4F6C26B89081 S1230F00C7A0C91A342A9E53DC6A10C4C02BA960B08863C713B84B48BFE59472B1DE79DFD5 S1230F2013EA16FA46A8D652B1B2D2D2F3ED5A5C56107DA24BA60E3335AA4E035C4BEBA8CC S1230F40DE811AFF00CB24008A978D57B43E61FD9B3E552A9A5F6FEBB1F2FF00C4ED19EFCB S1230F603E1BF89A3945C49792E877D34114506275492070D2C71CD916D1364EEBAB926708 S1230F80946422AE457C2BAC8F37E0E7C1FBAE7371E02D381E31931BCF171FF7C57E9C7C79 S1230FA05EF83DA97C40F04EB5AAE9BA569F6BE19BA59A21706596E6D2FAE0A37F11FDFE8E S1230FC0AD784F750225238FBB8AFCC5BB9377ECC9F02E63D7FE11196D89F78B52BC5FEB7B S1230FE05D987AD19D48F2F67FA134284A9C24A5DD7EA65D849988FB1AB37B1497BA734750 S12310000DCC9673301B264018A1078383C11C720F519ACEB194306FAF5AB914E7EC871830 S1231020DCB9C67A66BD88EC6325ADCCDD66F17C43A35D687AE5BC31DFCD1B35B3AE7C9B24 S1231040A65190F131E55C7F709DC3B6E1CD7CB7AB247A4F8C2E2309F348FB989F43E9F8AD S12310608AFA92DF5AB5F176ED2758B3FB2DF32EE6B594E56503FE5A42FC6E03AE46197B8E S1231080815F357C5CD1D3C37E319A39249A46859A3058E5DF072093F4FCEBCBCD2378C679 S12310A07F23D2CBE569389DEFECBFF179BE087ED01E0FF152BB2C3A3EA713DC63F8ADDC69 S12310C0F97303FF006CD9ABF70351852650F1B092371B91874653C823EA2BF9F58A712C1D S12310E0786E920E0FD6BF6D3F609F8B47E397EC7DE0AD6657F32FAD6C86977A49E7CEB692 S1231100FDD127DCAAAB7FC0ABD4E17C47BD3A3F35F93FD0F2F88A8E90ADF27F9AFD4F43F7 S12311206B6E7FFAF45699B600F4FD28AFB03E5CFD1AB1BC1E6046DA558F43DEA6F883ADB9 S12311401D23E1F6AD1C2CC8D2C0D6F1B275CBFC9C7079F989E463E959464D8C1AB86FDAA6 S123116003E22C3E1AF0EDA25D34612495A63BCE01D8B9EB8C77E99FA82BB88FCCF194FDB9 S1231180DE647DC612B2E64A5FD238D361A2F84E1876E9F6D15BDA22C11BBA839C72CC497C S12311A02063049258FA92402CC9E7FF00137F686D634BD0EF63F0DD9DB5A5ACD3797F6D34 S12311C0587EEA2901802DB40F9D8E58ED00B1C94662B2E7F88FF687BAF11D90B3FECE8E1D S12311E038773CF23499190A7AB648DA01619CB2E38CB213BA57C7E336F1E7C3D8748D1F64 S123120049B8B5D51A7DA248226DAD222B36D8D5406F3155BEEA856504E05A212CFE442995 S1231220B567515FE67A15B129DD5276F95995BC31FB46FC48F16F8F747B2B36952E223E2F S12312404C36B6D1366770B8F9946D7DDB73C008EA84E05A464E7E9CF0ADADFF008CBC1137 S12312601FF6A2DB49717511CC76EA93DBCA149276AE5639514F38E2CE36E499D8127E5BDD S1231280F859F0B7C5DE0EBEFED0D3ECA662C1955D112713C4A3322AA021268D4E772A9595 S12312A0B446E649276EBF56783F559B5CF87F6BE4DBC8BF6F8D151E48CDF1BC64C63CA431 S12312C03B4DE30ECC425AC791B4305A8C5A8D972D8DB2F9546DF3B667EAB7512DD4163B0F S12312E04DDDE6A93ACD147121BE9351742312448FB4DEC8A00FDFCC23B4878D8BC578FF00 S1231300008EFE0D69C6FB50F106AD359EA96ED7B11BE9350BA79F478E6F30616F2E06247A S1231320D52E47416B005850FCBC6013EBDA834709BEB9B892D7ECB25C2AEAD7373A80FBDF S12313402965070BA8EA0306E1C1181656A044A4EC6F9483583F13FC52D61A9E951D9ADD7F S12313609D72EB62E953C9A789355788328C697A660A594380079F30DD8C07C8C3572C5BE8 S12313804F4EA75D68C671BBE8721AD6BB0F86A793EDD36B1A4EA1A9593DBDBBCD6D1B78C2 S12313A0A75281948F2ACAD31E4E95687A6E601B1F78AB00D5F85DAAA63F63EF8272FCCAF2 S12313C060875EB1C1EA3CAD52438CF7C6FAFDB7BCF87F359F8924B1D721BCBCD52E2413E4
kokok

2019/08/23 14:01

S12313E05CF87B49BDF3F52BA2780DAA6A45B11291FC0AEBC642B483E5AFC42F16DDAE9342 S1231400FB1AFC3D8DA3F2BFB37C63E2ED33606DC23DB77038507B81BBD3B7415EA605A857 S123142054523CAA8F9E2E3DAC7296379E56ECB53ED7C430BCAD1EEC73C1F5AE5135733484 S1231440EDF36E04671E951B5FECBAE7BD7B5F5CD7DD393EAF7DCECEEE3B1F15D835BCC643 S12314603B816F2E3746F892DA41D0861CA38E3D0F35E15FB42F876EB4DF12AB5C5D2DE794 S123148099B248E765D8ECBF74EFC719F70067D057AAC3E1B8F531FDA16571269DAA280BDE S12314A0F68886E5980E8B2A74917EBC8EC45703FB444D75A8E99669A9589B5BC5578C4B7E S12314C0165EDAE06320A37507AFCAD823DFAD5E31F3D0BB5AE82C22E5AD64CF34B0955607 S12314E0DD543870BF2938EB5FA5FF00F0428F8A1F6DF0C78E7C0F3485BEC7343AE59A1F10 S1231500E1590793301FF02588FE26BF3074A76F2C9C7070D9F7239FD735F4F7FC12A3E3A5 S123152037FC2A4FDB47C26D34BE5D8F885DF42BAC9F976DC0C213F494466B8B25C47B2C90 S12315405C25D1BB7DFA1D19B51F6B859457AFDDA9FB2C6CF268AD83A6907EED15FA71F9B2 S1231560EDCFB79C3450A866DECA002D8C6E3DCE3DEBCCFE2BF856C7C5FAA4D717D22AFF6E S12315800067C1E440720156241241F94F0C57F8B00E3E68D880FEA131575DD9CAFA8AF3BE S12315A018E4834CBD1AA5E4ADE65C5D4B7019CB03184CFCA803E414E870E3682434B6CA90 S12315C04C6DF98E6137ECD463BB3EE32F8C7DA3735A24721E18FD9CA19D667D4219A1FD09 S12315E0E0860B64DDE63328C852142B6E50D9D8811901258DA2925BD2B49F00E8FA57975B S12316006D63630C8AD69B5218638DC4B086C9C2E56268415C9C94B356E58DCBE49E5A1FF0 S12316208A1677FE29D3345BABEB0D364F10432DDD858CAF08BBD46D2DF0EF2A44FB23FB2A S12316403C60A9DF204B55CE5639DBE73D4DC78B6C744B6BC699815B9FDFC4BE535D4D7E5B S12316605173E6245261EE8AE78B8BAF2EDD303647815E0545564F53DEA32C3C2375F89BD4 S12316801630DBDCDAACD362E9B563F246B1B5D0D4581F94A210AF7C57230EE23B48F20A7A S12316A0A90334BE37F1669F1E8D7F2DD5EDA8B559562D4679B5031DAA90388EEEF106E9A7 S12316C09B3C0B4B51B41CA1E0835E5DAAF8F352F1E6872359B5AD8E83732C505F6A57773F S12316E08C6CEE597F867BB1896F9B8205BDA858413B7774A5BEB48FC29ABE8B23497D1EE6 S1231700A4C1FEC3797762B36AEE8108DBA6E96A0C7651F38F3651B80FBE08F9A9C70727E5 S1231720BB339E6505B239DF8B1E22D6AD3C2D37882FAFAE3458F4CD3EEEE3445974CDFAAF S1231740949E55BCAEA34DD2235716D1FCA019A6479003CAE3069DFB3BFC6EB3F893FB37DC S1231760F82F5FB356B3D43C6DA569DAA5EE99E1EB96BDF106B0F2042CF7BA84841B68B7B7 S1231780EEDABB90A8E15C7DCAE57F69ED7349F07FC2DF165BF88A7FEC5B7BCD26EE5BFB15 S12317A00B7D57CCD76FD442DB1AFF0051DD8B488B15076B2A80485939DB5E31FB22FC64AC S12317C0B7F19FECC7E12F05F8165F105D699A1A5AE993D96976EF1DE5ECC8B1979EF6FDF3 S12317E0846AA1D988054C6180C0320193D72A3172B33CB8E2A4A2DA3E86F89DE33D2F4800 S12318009DB43BA30AF96723C17E1372002C4737D79F29CB7F164C7BB9C897BFE1B7C4D8C9 S1231820FC9FD8D963F252D7FB27E30F8A2D440A772C01D206D80E07036E3A0E9D2BF6776A S12318404DF8496BE1FD463D375ABCDB2FFAD5F0AF850334EC09FF009789C6D700F76FDCB6 S1231860A1EEEDDFF1B3E3558AE9FF00B37FC54D3E3B5364BA0FC7AD56216DB837D9965B6D S123188069309904838F2F1904838CF3D6B4945452B060EA39CE4DF91E056BAA34577D78EB S12318A03578DF799329CD737F6AC5C2D5BFB68F3D39E7D2946A1DCE99DA69BE29BAD06312 S12318C049174F9EFAC39F3DEDFE69ADFD1BCBEAEBD738E463A1A77C57B8B4F1AFC249EFEE S12318E034FB88AEA18583878CE40C1C104750467A1C114DF87FA9059CAFAD6978AFE1D573 S1231900AF886CAFAE2CE5974CD4A78595E5800DB7231F7654FBAE3DCFCC3B115EDD1E6976 S1231920D1715ADD1E654B46AA6FB9F2FDBDE4826646276A318FDBFBC3F426B73C2FE20B73 S12319408F0E6B7677F69234777633A5CC0E3F824460CA7F302B1EE163B5D42E1666DACAF1 S1231960CA7681D483827F5A9ACD7CC9B6A1F973D49E54D7811934F43DB924D58FE883E158 S123198097ED1DE11F881F0DBC3FAF49AB5AC126B9A65B5FB46645CC66589642BF86EC51B3 S12319A05F83363E3EF1169B650DBC3AB5E470DBA2C71A24EC15540C00067A0028AFB28F01 S12319C01369AC0F93970DEBA48FB5BFE0965FB6B7C683FB43781FE1EE81E3CF1043A06B43 S12319E077AB1DE58DCDEA5D588B5456926FDDDD6E48FF00768C32A57AF193807F6E5B4E34 S1231A005D35AE6EB50904B369B6D1B3B4C1628ACFBC7C4ABB220303634C85C647936AB970 S1231A200D5F8DFF00F06F8F81A3D7BF6AAD6FC57FD9ED349E18D1CC166B684ABC97374EE0 S1231A401005550D2EEF2E3979846F1FDE404B0FD63F1FEA91F86FC3571AF789AEA6B3D2E1 S1231A60F4FBBF2D6CF4F56CC32138116F84482299CAE365B89EE9C9F99C735F2EAF2DD93F S1231A80EA6265CB2B44F2F6D2AFBC53FF000525FEDDD174D91A4F09F828D94F3358DA3A64 S1231AA0DCC934EB22DD3BDC334D6FE58DD8B8BCF99BE6D883010FAE5C685670F84EEB58F5 S1231AC0D7AF2D6FADF5194CB25C5E34CDA5CAFBBEF6DFF8FAD5A5039190B0E07CAA315E9A S1231AE01BFB02F8FED7E29F817C55F1635AF08F847C237DE32D5E5874B4B273A8DC5DD891 S1231B00D9FEE6002C40F30CCACACCCF74EDB5DCB15539037FF6AAFDA4BC55F0F3E0DF883B S1231B20F5EF87FA3C9AC7887C2F6C9777BE6CA6EF5092DA021E749AF14186CFF74AE5623A S1231B408B2DB80C03D2AA34D5AE72CEA4B9B94F51F0EFC77F0DFC42D13C2FE2FD1FC41259 S1231B605FD8EB7035CE917F1C2979AD5DDBED641F64B303C9D3E2CE572EA1863E7DA466D2 S1231B80B9CBEF89BA9F88FC5D368FE15D3EFD2F2557FB6DAE8D73F6AD5A76254037FA946F S1231BA087641D3EE870C070AC7A57847FC130638BF684F8172F8BA6B1F12358F8C35CD502 S1231BC0B5AB5F0D58C6B636F6F0CB75F2FDA3500DBE78DC877CEF0CC4B7C85702BEA4D038 S1231BE0AC2DE7D49B46B55FB55A58DBAC6BA0783D7ECB616E599F29717794E7E5191BA352 S1231C0027BC6D5514B96E4B8BE6E567CB5FF050FF0010786BF677FD9BFC416BF1075586FC S1231C204835DB3BAD2DBC37E1794F956934F11559B50BB23CD902B105F0109EBB2400D773 S1231C4077F03BE38F847C71F0DBC2FE08D13C61A22DF786EC34A4BEF05782033EA5664CCB S1231C6031E45CC8AAAE8F9FBFB444158E1E426BCF3FE0AA7F1DD7C21F07FE227C2FD73EA9 S1231C801DADC4137842EE7D36C34496CA5B48DDA4B648E79CF982E5312CA30CB1C0CCF19E S1231CA01C1914F3CB6ABFB705F7ECE7F08F41F06F84FE17F81BE10EB1A4DAD8C1AE6A735D S1231CC05ADB36A135F0B6885CC851408958B8CB348D2124720119AE3F68FDA6874CA10872 S1231CE0D2BC9DBB1F60EAE26F87BE1092EB56D43C3BF09FC270E5A426685AF6627AEE9546 S1231D00B30AC87FD913B93FC59E6BF103E3CDC5ACBF0F7F69EB5B09AEAEACAC7E364379CB S1231D2004B73BBCE78E686F155DB780FB9B824B0CD7BD78DFF6803E30D78EB1A95F6ADE54 S1231D4034D679C6A3AADCB0863EFF002171F2AFB43185FA57CAD27882E3C51F0DBF6A6FAA S1231D60B532BDC378AB42D55CAEEDA4B4934648DC49C7CE3A93555A4EC98B2C9294E56FD0 S1231D802FCD1E1C583B0DDEBDBB5477773E583B73F29FBC7BD33CDFDD2FD68B9943AF39A6 S1231DA0E4F35E74AA6B767D072DCDDD02EAF238B6C77D0585E4803C0F22F983039C95EE87 S1231DC0BC11EBE95B569F1DA5D125920D5B4F559ADC0DF736D36EB5917FBC09F9978EC45B S1231DE01FAD717E2358567B58C48D6AD10CC72E32A80F2467B93F97BD7317BAF3C4AB0D80 S1231E00B99A45C31776C00C3A707FBBF5E6B830DC418B5270A76F2FEB6385E1E3525692E3 S1231E202878BC41AE78A6E6E2CF325AC92336F03E554707049E83048FCAAAE9130F283789 S1231E402AE70587E1FF00EBA87516163A64725BDAB4504B217444CED7718CE41FA7D29DA5 S1231E600DD3477E8D279683248453B8807A67DF9FD2BD1A389E7F799DDCBA591D30BA5CF4 S1231E807F17FDF3454066F7FD28AEDE633E447EB5FF00C110FC12BE17F057C35D426BAB9B S1231EA01B15F18789B57D76FACF7319EEEDAC6C24B5B3C470FF00A449119DAECECDC9137E S1231EC0B46012D86DBF4E7FC155BE2D6A167F056CACF479F52B4D2B4B8EF25D62EF4E69B5 S1231EE086AFA7431DB300F6B25B8FB158F96EFBDA3762CCA30496E9E73FF047DF02E8FA6D S1231F00B78AF52B3FEDAF0FF89345F02E97A6F87618126FB147A74B25AADC5E178DA017F2 S1231F20970E2E5E581E349BCB672E4A05C0AEC3FE0A89FB56EB9E1EF89B65F08A6B7D5311 S1231F4041F02EA89A6CB2EA3A568CF7B717B09B98E47B4B6D3A0FF8F675486EDC34A2469F
kokok

2019/08/23 14:03

S1231F60904600642181DEFEE9E2D4BCAB7F5FD6C76FFB0B7EC95AB781FE03DBEA9E28D773 S1231F80354D706B5656307F67417FF63F0E5BC110091DCC972CA27792746DF344ACEA1CC5 S1231FA0FCDC835E01FF000530FDAD3C4937C5AB0F037C39F16781B58F03F87FC3B7377AD0 S1231FC0A691A6DD7F6669F6BAAACA3ECD04AF112E518232EC90F9531F311B6E463EA8F80A S1231FE03FAC697E1CF86D6BA95C78675DD3759F175D49A8DE4DF103577D6350BE6DAD1CF8 S1232000722D9A600668B6622448FCB184C10335F9C3FF00052AF827E13F821FB747C31D5F S12320203F4BF0158F866DFE2AB897C453EAF6896BA6DFC097F6F2BB7D810A88829883601D S1232040EC671232F05B753A9271818D18A955BB3F42BF65FF00DAD34BFDA9BF67DF0BF8BF S1232060D3FB2EF7526D6B4889E4F0EE9B09D3343D2250D209202C71E646AC063FD602A421 S12320801D83381B49F1635CF883ADDD69BA4B5EDEC36EB1C1FD93E0D8BCAB580004EC9671 S12320A0F09554C6E208F322FF0070D78AFF00C12D3C17F047E25F85FC4DA9780FC69E2E66 S12320C0F8CD75AACB6D7B7BA16B062D3E1F0E22A3451472D9A32C50C7F21548CF9A151113 S12320E04007A9EDBE3EFF00C1437C2DFB2BFC60D7BC3FE30F1369FE15D0745D196E0697BD S1232100E1DB5F36E16F0BAA080CAE8123C46A0F0B19F9F3EF55ED1385D98CA0D4DA5FD700 S1232120EA7C9FFF000515F87B7BE23D57E2CCDAC78334FF0084BE30F873E1186FFC31AFF3 S123214034FE7C1E34B479CC7716FE7F9888DE599CB91E5C8C1A30E70146EF8DFC7FE29BDA S12321603F04FC4ED634793C77A8FC48D5A1BB8E74D6EEA6FB53DD41C012C6EC00D8C4E49F S12321803282581078E95D4FED0BFF000512D0FE34FF00C2F7B7D5B49F1835AF8C749B656F S12321A0F05DA788EE3ED973E1CB9132C97044FB0B6C70AE23C385D8ECA49C85AF9F3F66C4 S12321C03F086B89E28B7FEDCD3A3D3F4FBBD91B6A12346B35A6D5DCB10072E33C7CAA0354 S12321E064835E746A47DA271EA7A328BF637A9D3A77D11ED369E3E926BD8CDAD8B2EF47F6 S1232200C5EEA126EE7631E1785E7A704F5E95E75F0EB509AF747FDA6ADEE26F3E69F4FD09 S123222022F59F698F714BC8F27040C7DFF415F45F84FE17D8A4D1CF63A1DFEA930CFF00A4 S1232240A45D1FB2C6D9E33BA40643FF007C1AF08934E9B4DF8F3FB496932C30DBC93783DB S1232260E2B931DBB33463CB92D1C60B73DFAF1F874ADEBEDB98E5D5E32A8E315D3F55D320 S1232280A1E1E26C43535BBB4ADB5615B86906154FE7C76AA287F767B1A96CE26B995556AD S12322A039240A373843821475E6BC7AD2F759F47D05F166A9A862466537015023451B641E S12322C02A71CE40038E33CD709BE4B7BC8D99BCC50776ECFDCC73820D7A1C97296B1CC9DD S12322E067E4C71B235B3CAE4F248CE579E4F1D703AF6AE47C513595DDEAAC30488AA70D7C S1232300B64DC5CED00648E07D2BE7E8C9466E2A3639A0D276B1957DAAACB79E635C7CCA3D S1232320A7197C13F403A7E154ED03AB42EDB9BA231C770D8CFA74357F5FD46D7539A05586 S12323408D636854206F2FE76C75F7C9F7AAD16A297374B1C36CD1C6A36A827904F724FFFE S123236000F5ABD8C1D64B746BCDA6C6FE58766A2A82EA69B46E2DBB1CE477A2BDEE6893E9 S1232380CB23FA07FF00827DFC4FF11F817F644F89FAB7C3FF0087FE1CF053699AC6AD7B6D S12323A0A75E5D3476977A9CDE6BC28FABCF9686D0EE411EDB76258A9D88800DDF15FED39C S12323C03FB58FC31F8ADFB4DF85B4DD52D7C79E17D2E1D5E6FF00849ED740B91749AA482C S12323E054C82684DD92197CDB8BC472B1A86560C3764EDE6FF681F8FF00E19D73E0EE87CD S1232400E11F04D8D87C33D11ADECED758BED06EAE6D6E75558214668AF01548645FB5C82D S1232420823DCB24882300C87907E71F1C780354F893F142FB45D4BC6FE1FBA83C3BA44327 S12324402BEADF675C4703364AE51B6870EC324B83F30E878A72A8EDFF000C790B914DBBF2 S1232460F4F3F4F4F91FB01E07FF0082B47C25F817F01750D57C2F75E20F136BFA169E65E9 S123248032EADA74706BDAEEF9F95372635B64F2A3C003E7CAA0014935F07FFC1483FE0A20 S12324A0770FED95FB44787ADFC010EAFA7DCE9F77A79D075FD4751898324E91C9379BB9E3 S12324C07CBB42922A3078F6E15245753815E53F10BE07788BE18FECED7BA97836EB53D6C0 S12324E0EF2716AB757AD73B9FCA452ED2C09FC09CA0DAAC4ED5EFCE79BD1346F87FFB4C44 S12325007C71F86367A7D9EBF6369E2CFDDF8D34ED1F4EC5D477769149916E8CC202648914 S1232520810C154272CC325B315EA49FBAB41616319373DF7FCBAA3EE0FD9A3E2DD9FF007A S1232540C13DBC3F07C36F853A569DF1AB5EB38EFE2F1AF8DFC2F6BF60874A89A4DD1A0965 S1232560D019F548A1941777DE11405400120D78E7C44F075F78AEC75CD70783C78CB58BB7 S1232580E98B48BA8CA91C976E7F77EEDC0EB92A719EFCD657C45F04E97FB177C7FBCD63D9 S12325A042D075AF853E119BC1D05EE9B61ACEAB3CD6FE24798AA10860731C9213895A27D3 S12325C09022A804F3B54F8AEADFB74789BC4EF1C360CF6D6F33962A9762D9595B7B1C18D7 S12325E082BE78270CEC39039A3DA7242CC9AD879D49A9476EB7BFE9FE665FC43F08691A05 S1232600E5BDEDF5C4D76BFF0008CDADA7F66697747ECCBA749F6D58EE6C0EE25D962CE573 S123262072C4EC93774031931FED3779F037E215CCF6BE15D324D696673AF4BE649E5DE4FE S1232640E669248E58CB72B88E40A0B6770009C74AC2D77C7917C44F84BA95D5CEA4B17878 S12326608A3D68936D0588468E0211479B700664DCC0E0331C1407A918E3BC5722784A195D S123268008DCDE6B869F7B12CFBB82D9F5FAD70CAA5FDE89E843091943967AF97DDFF0FE4D S12326A0A7D79E26FF008285DC3D92AE98B636BB9320DB5BB5DC9938FF00969379683FEFB4 S12326C0CB8FAD794789F46F10FC56D1354F1E4763A3F97E24B96D22FAFAF99EE2FAE16393 S12326E058F2BB53CB81540298C460E57AF435E3BE6A889447370A30011F957D27F07EEB07 S1232700CCFD8A630C559ADFC4F74323B030DB9AE8A73736948161E9D08DE94523E73D4B37 S1232720C31FF08FEAF7767F6AB889ADDF6AB44D9423DD1F77E8454767F6BB6B9556B8B642 S12327409A090E24E1A172BDF81907F315A5F169DA0F1DDC6DFBB2104FB564E8B7BE515658 S1232760F2A5798B650E33803FBA3FBC7FA571E2ACA32D2E76464F96E5AD70DC68D04D0C6F S123278076F747CC5F303951E62C67B6572071DBAF5FA5726356866F31977AAF0C1400576F S12327A02319CFF3E2BB1B4D687867C616DA82CD702F2DD4CE04A8BB81078DC791B80E8737 S12327C09AD5F8F1A52EB7A7787669748D374592E2D1E4496DA74737719F9849205E77139B S12327E093CE723D3915E1D1A716AEF7FC0C60ECECCF24BB1E75D3DC6D655CF04718AAF715 S1232800378D3EB1FB9691F721C0C64E4608E07D2A7FECD9A39555AF4F92C725301C85F60A S1232820A85F566D31A336B198F6F0EE3EFB8CF5CF6FC2BD2A368CAF1D59D9A742E3DE9701 S12328407666B60198E483B860D158F26A6C246CA8273C9C9A2BD4F68FB93CA7D35E38F18E S12328609F84FC0B74DABF85ED75FB57D42D1522D3A611842F2339BA0EE437CBB4011B296C S123288024101871C556F08FC69FB17C72D4358D07C3DA0E8FA4DFC90DB44A6C1666D312DE S12328A038C6DF289DC776532597E62DCEE1DCA288FF001394F3634E3C8DBF4FEBEE2DF83F S12328C0C3F691D4F50D4AD6E352D7269DEF20B8B9679602C81B244681C92FBFE5CE41C627 S12328E048FC3C7478805AF89ED754B7BCBA4BC77093CF1EEF33710431C83962DCF39C9E6A S123290068A2B1A95A4E56F337A74D2573D07E317C53BAF1C6BE21D064BBD634DD26CA2B0C S123292019EE2E649254CFF111BCFDD3B40078FBBF4AE7B4EF0E59D8EA6BE5C70E19986E90 S123294008367CB12F386F52DF5E9D314515BC7DE5CF22231E45CB132F566D4740D2EE359A S12329604B3B1B7B2D2AE278ED2E523919F7C8A43A31524E18FA8E0F3EB59BA9682BA05BE5 S1232980EDF107DA66BCB9CDC8B73D39240031DFDBB514571D6828EABC8E88F436A0B1FFC5 S12329A00046568E32BBD4632390703F90AF73F839A935AFEC95AB598476FB3F884C808F57 S12329C0F6A0887EBB68A2BA70FF001226BFC078EFC4CFF4FF0016962ACA5A35E0F5AA5ABD S12329E025AC92CF1AA82D862148EBF9FE345144FE265C7E0476FE0FD22CAD34ABE5B84824 S1232A00D5546E60EA3F239FAF3E958DF137E13ADAFC32B6F11693A85C4FA7D995B7712274 S1232A201400B391BA21C8F2B71FCC9E94515C7514672E56B64DFE46116FDA1E596F6E7546 S1232A400B6F3963DAB1A7CCC78527A75F5E9591710DE5CEE8E2133060410BDE8A2B96321C S11F2A60E56D24B43B6F6D07C28E91287B77DE000DC77A28A2BB3DBC847FFFD98E S9030000FC
kokok

2019/08/23 14:04

4回に分割になり、申し訳ないです。
thkana

2019/08/27 07:41

解決に直結した回答をベストアンサーにしたほうがいいのでは。 不具合の原因は、バイナリモードで開かなければいけないファイルをテキストモードで開いていた、ということだったようですから。 (ベストアンサーは選択しなおせます)
guest

回答2

0

仰っている jpg が「画像ファイル」でしたら, ファイルの大部分はバイナリです.
ファイル構造をご確認のうえ, それに沿って実装してください.

失礼しました, 逆ですね.
このコードはテキストを読んでバイナリに変換して出力しているようです.
ですので, 表示がそのようになるのは正常かと思います.


データとコードが揃いましたので実行してみました.
結果, 確かに jpeg ファイルとしては画像が乱れていました.
変換結果をテキストと比較すると, 0A が 0D0A となっています.
コードを見ると, バイナリファイルを出力するのに fopen が "w"(テキストモード) になっています.
Windows ではテキストモードでは改行コードを2バイトに変換してしまいます. (読み込み時は逆.)
ですので fopen を "wb"(バイナリモード)としてみてください.

投稿2019/08/23 01:32

編集2019/08/23 17:35
jimbe

総合スコア12648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kokok

2019/08/27 00:38

上手くいきました。 ありがとうございました。
guest

0

ベストアンサー

ご質問で言うSレコードとは、「モトローラ Sレコード」フォーマットのことだと思います。最近ではあまり聞く機会がありませんが、以前はインテルHEXフォーマットと共に、バイナリのイメージをテキストで扱い、組み込み用CPUボードのROMに書き込むときにイメージを転送する用途でよく使われていました。

SREC (file format) - wikipedia

今回の件ではJPEGファイルのバイナリデータをSレコード形式で表現したJPEGファイルのデータ、ということでしょう。ですので、あらかじめSレコードをある程度でも理解した上でないとトラブルに対応できないと思います。

提示されているC言語のコードを動作させた訳ではないので分かりませんが、このプログラムでそのJPEGのSレコード形式のファイルを読み込み(デコード)、JPEGのファイルに出力した後でそのファイルがなんらかのJPEG画像ビューアーで表示できれば、Sレコード形式のファイルは正しく、またC言語の変換プログラムも意図どおり正しく動いている、と言うことになります

そうならないのであれば、元のSレコード形式のデータがおかしいか、変換プログラムのどちらかがおかしいです。

投稿2019/08/23 02:24

dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kokok

2019/08/23 02:58

ありがとうございます。 jpegファイルに出力したのを、表示すると画像がくずれてしまっていますが、なぜくずれてしまうのでしょうか?
dodox86

2019/08/23 03:41

正確なことは言えませんが、「画像っぽいんだけど崩れている」と言うのであればやはりJPEGのデータがどこかでおかしくなって画像を復元できないのだと思います。 Sレコード形式ファイルにする前のデータは、JPEGファイルなのでしょうか?その元のファイルと直接比較して、ファイルのサイズや内容が化けていないか確認してください。 元がファイルではなく、何らかの画像データ、例えばメモリ中のデータを直接、Sレコード形式のファイルにしたのであれば、ヘッダーなどの付帯情報が足りないのかもしれません。そうであれば自分で適当に追加、修正する必要があると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問