|
■No51897 (επιστημη さん) に返信
>>それぞれのメソッドの中でデータができたときに随時書き込む方法はないかということです。
>
> わからん。どんな使い方を想定しているのでしょうか?
private void BKen(string PNa)←-----メインのメソッド
{
---------------------------------ここでファイルを開き
Array.Copy(CDBA.DBF("部品構成", "部番 = '" + PNa + "'", "部番,部品", PM20T), PM20OLD, PM20T);
if (PM20OLD[0] != null && PM20OLD[0].ToString() == PNa) { FG1 = 1; } else { FG1 = 0; }
string AA;
while (FG1 == 1)
{
if (FG1 == 0) { break; }
for (int CT1 = 0; CT1 < 10; CT1++) { RS[CT1] = null; Su[CT1] = null; }
WS = PM20OLD[1].ToString();
RS[1] = PM20OLD[1].ToString(); Su[1] = PM20OLD[2].ToString();
AA = PM20OLD[1].ToString() + "×" + PM20OLD[2].ToString(); PS = AA.PadLeft(18, '-');
GI = 1;
Roop();
Array.Copy(CDBA.DBF("部品構成", "部番 = '" + PNa + "' and 部品 > '" + PM20OLD[1].ToString() + "'", "部番,部品", PM20T),
PM20OLD, PM20T);
if (PM20OLD[0] != null && PM20OLD[0].ToString() == PNa) { FG1 = 1; } else { FG1 = 0; }
}
---------------------------------ここでファイルを閉じる
}
private void Roop()
{
while (true)
{
Array.Copy(CDBA.DBF("部品構成", "部番 = '" + WS + "'", "部番,部品", PM20T), PM20OL2, PM20T);
if (PM20OL2[0] != null && PM20OL2[0].ToString() == WS) { FG2 = 1; } else { FG2 = 0; }
if (FG2 == 0)
{
if (GI == 1)
{
RS[GI] = null; Su[GI] = null;
---------------------------------------ここでPSを書き込みたい。
listBox1.Items.Add(PS); break;
}
else
{
---------------------------------------ここでPSを書き込みたい。
listBox1.Items.Add(PS);
Modori();---------------------------この中でできたPSはこの中で書き込みたい
if (GI < 2) { break; }
}
}
else
{
AA = PM20OL2[1].ToString() + "×" + PM20OL2[2].ToString();
PS = PS + AA.PadLeft(18, '-');
WS = PM20OL2[1].ToString();
GI = GI + 1;
RS[GI] = PM20OL2[1].ToString();
Su[GI] = PM20OL2[2].ToString();
}
}
}
というような使い方をしたいです。
>>ファイルを追加モードで開いて書き込むと、時折余分な空白行が入ったりすることがあるので
>
> 経験したことがありません。その現象を再現するコードを呈示できますか?
すみませんそのプログラムは消去してしましました。やった内容は、配列にデータを数個作っておき、すでにあるファイルをappendもーどで開きfor文で回しながら書き込んでいくと古い文と追加分の間に1行改行ができてしまいました。という現象です。いつもなるのではなく何回かに1度出るだけなので信頼性がない方法だと思いました。
|