- - PR -
チェックデジットに関して
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-12-11 17:43
シュウベエさんへ。
まずは質問にきちんと正確に回答をしましょう。 シュウベエさんが実装しなければならないチェックデジットは仕様が決まっているのですか? もしくは、何の仕様に従うのですか?それはシュウベエさん以外の人にはわからないわけです。
と言われても誰も答えようがないことはわかりますか? | ||||
|
投稿日時: 2003-12-11 18:00
シュウベエさんこんにちは。
いや、しばらく音沙汰がなかったのでもうあきらめたのかと思っていましたが、まだこの問題に取り組んでおられたんですね〜。いや、その執念には敬服いたします。 ところで、私の答えもばんさんと同様です。 シュウベエさんはどのような方法でチェックディジットを算出しようとしていらっしゃいますか?以前に書き込んでおられた、 http://homepage.mac.com/sunagoh/excel/ex000101.html に書かれている方法ですか? また、もしJavaでプログラムを作成されているのなら、それを書き込んで、更にそのプログラムがどのような動作をしているかを付け加えれば、きっと誰かが回答をしてくれると思いますよ。 とにかくいまのままでは誰もシュウベエさんを助けてはくれないと思いますので、ここはひとつもう少し情報公開をされるといいですね(^_^)/ [ メッセージ編集済み 編集者: たーぞう 編集日時 2003-12-11 18:01 ] | ||||
|
投稿日時: 2003-12-18 17:35
import java.io.*;
import java.io.FileReader; import java.io.FileWriter; /* * Created on 2003/12/18 */ /** * @author Administrator *check */ public class check { public static void main(String[] args, int counter) { while (counter <= 30000) { System.out.println("データ読み込み開始"); try{ char data[]=new char[100]; //ファイルオープン FileReader fr=new FileReader("input.csv"); //ファイルを読み込む int carscount=fr.read(data); String str=new String(data,0,charscount); System.out.println(str); //ファイルを閉じる fr.close(); }catch(Exception e){ //例外処理 System.out.println("例外"+e+"発生しました"); } System.out.println("データ読み込み終了"); } int[] value = new int[13]; int a = 0; int b = 0; for (int i = 0; i < 12; i++) { value[i] = Integer.parseInt(args[0].substring(i)); } value[12] = 0; for (int j = 0; j < 12; j++) { if (j % 2 == 0) { b += value[j]; } else { a += value[j]; } } a = a * 3; value[12] = 10 - (a + b) % 10 % 10; for (int k = 0; k < 13; k++) { System.out.print(value[k]); } System.out.print("\n"); } System.out.println("データ書き込み開始"); try{ //ファイルを開く FileWriter fw=new FileWriter("output.csv"); //ファイルに書き込む fw.write("data"); //ファイルを閉じる fw.close(); }catch(Exception e){ //例外処理を行う System.out.println("例外"+e+"が発生しました"); } System.out.println("データ書き込み終了"); } } ----------------------------------------------------------- 上記で、こんな感じの事がやりたいのですが・・・たぶん おかしい記述も多々あると思います。 おかしい所を指摘していただけると助かります。よろしくお願いします。 | ||||
|
投稿日時: 2003-12-18 17:47
永井です。
コード実行も細かい検証もまだやってみていないですが……
「こんな感じの事がやりたい」がおかしいです。 このソースに加えて ・Inputとしてこんなデータを与えて ・こういう出力を得たいのに ・こんな出力になってしまうんです ……くらいは書いていただかないと、見る方の手間がかかり過ぎるのでは? と言うか、前にも書かれていたと思うんですが、率直に具体的に書かないと 伝わらないような気がします。 少なくとも私は、何がやりたいのかさっぱり分かりませんでした。 #分かろうと努力もしませんでしたが ソースを書かれたことで、とりあえず一歩前進したとは思います。 ただ、たーぞうさんの書かれている中の「更にそのプログラムがどのような 動作をしているか」がまず欠落しているわけです。 更に、上にも書きましたように「どう動作して欲しいのか」も欲しいです。 [ メッセージ編集済み 編集者: 永井和彦 編集日時 2003-12-18 18:02 ] | ||||
|
投稿日時: 2003-12-18 17:56
csvデータなんですが
とりあえず、12桁の数字が30000行以上あると考えてください。 そのデータを読み込んで チェックデジットを算出し、13桁目に追加して csvデータで書き出します。 こういう流れです。 | ||||
|
投稿日時: 2003-12-18 18:10
で、何がうまくいかないんでしょうか? 10000行だとうまくいくのに30000行だと処理が終了しないんですか? 13桁目にチェックデジットが追加されて欲しいのに何も追加されずに 入力そのままで出力されてしまうんですか? 13桁目に付加されているチェックデジットが想定しているものと違う のですか? #この場合は計算式も併せて必要になります 何がしたいのか、何で困っているのか分からないんです…… | ||||
|
投稿日時: 2003-12-19 13:47
実行すると、
java.lang.NoSuchMethodError: main Exception in thread "main" こういうエラー表示がでます。 それと、読み込み部分に関して String str=new String(data,0,charscount); でcharscountの部分にeclipse上では赤ラインが入ります。 ここから進みません。 エラーの出ない完成した場合の実装コードってどうなるでしょうか? | ||||
|
投稿日時: 2003-12-19 14:00
こんにちは。
とりあえず「}」の数が合ってないのと下記のように 変数名に誤りがあるところでしょうか。 >int carscount=fr.read(data); >String str=new String(data,0,charscount); 「carscount」と「charscount」 | ||||
