- PR -

CSVファイルのデータ削除

1
投稿者投稿内容
omopurike
常連さん
会議室デビュー日: 2008/04/03
投稿数: 38
投稿日時: 2008-08-29 11:50

保存されているCSVファイルの1部を削除するプログラムを作っています。

ファイルを読み取って1部取り除いてまた保存するという感じにしました。

ちゃんと動いているのですが結果(データに保存されたのが)全部のデータが最後のデータ1色になってしまいます。
これはいったいなんでですかね?^^;
わたなべ
大ベテラン
会議室デビュー日: 2007/12/09
投稿数: 123
お住まい・勤務地: 札幌
投稿日時: 2008-08-29 12:27
ちゃんと動いていないと思います^^;
未記入X
大ベテラン
会議室デビュー日: 2005/05/19
投稿数: 136
投稿日時: 2008-08-29 12:30
引用:

omopurikeさんの書き込み (2008-08-29 11:50) より:

保存されているCSVファイルの1部を削除するプログラムを作っています。

ファイルを読み取って1部取り除いてまた保存するという感じにしました。

ちゃんと動いているのですが結果(データに保存されたのが)全部のデータが最後のデータ1色になってしまいます。
これはいったいなんでですかね?^^;


そういう風に動作するプログラムを書いたから、そういう結果が出ています。
結果が意図しているものと違う場合は、期待する動作をするようにプログラムを修正してください。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-08-29 13:15
バグと言います。
NameLess
会議室デビュー日: 2008/08/29
投稿数: 1
投稿日時: 2008-08-29 16:22
読み込んだデータを同じアドレスを参照する変数に入れてるというバグじゃないですか?
デバッグして中身を見れば一目瞭然だと思うのですが。
deanna
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 118
投稿日時: 2008-08-29 21:56
主人曰く「このプログラムはちっとも思い通りに動かない」
プログラム曰く「おれは、お前の作ったとおりに動いてるんだよ」
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-08-30 01:28
コード:

public class Csv {
int columns;
String fileName;
List list = new ArrayList();
public Csv(String fileName, int columns) {
StreamRader sr = new StreamReader(fileName);
String line;
while((line = sr.readLine()) != null) {
list.add(line.split(","));
}
sr.close();
}
public void set(int row, int col, String value) {
String[] line = list.get(i);
line[col] = value;
}
public String get(int row, int col) {
return ((String[])list.get(i))[col];
}

public flush() {
StreamWriter sw = new StreamWriter(fileName);
Iterator it = list.iterator();
while (it.hasNext()) {
sw.write(((String[])it.next()).join(","));
}
sw.close();
}
}



はい。これ。怪しいところが一杯あるけど、直して使ってみな。
タダのカンマ区切りのCSVならなんら難しいところは無いはずだが・・・

探せばCSV読み書きなんぞのサンプルは一杯あるはずなんだが、
君の質問はいつも漠然としていてつかみ所満載な気がします。


[ メッセージ編集済み 編集者: ぴあちゃん 編集日時 2008-08-30 01:29 ]
1

スキルアップ/キャリアアップ(JOB@IT)