//日付データ順の修正 >>597
public static CommandResult DateSeriesFix() {
AbstractBrand br = Env.Frame.ChartCanvas.GetBrand();
byte[] buffer = br.ReserveFarm().RawDataImage;
SortedList<DateTime, int[]> list = new SortedList<DateTime, int[]>();
int recCount = buffer.Length / 32;
for (int i = 0; i < recCount; i++) {
int[] price = new int[8];
for (int j = 0; j < 8; j++)
price[j] = BitConverter.ToInt32(buffer, i * 32 + 4 * j);
if (DateTime.TryParse(price[0].ToString("0000/00/00"), out DateTime date))
list[date] = price;}
string filename = Util.GetDailyDataFileName(br.Code);
byte[] buf = new byte[list.Count * 32];
{int i = 0;
foreach (int[] pr in list.Values) {
for (int j = 0; j < pr.Length; j++) {
byte[] byteArray = BitConverter.GetBytes(pr[j]);
for (int jj = 0; jj < 4; jj++)
buf[i * 32 + jj + 4 * j] = byteArray[jj];}
i++;}}
using (FileStream fs = new FileStream(filename, FileMode.Create)) {
using (BinaryWriter w = new BinaryWriter(fs)) {
w.Write(buf);}}
RefreshChart();
return CommandResult.Succeeded;}
//使い方 CommandExecのAboutBox()の前に上記コードをコピペ
//AboutBox()の内部1行目あたりに以下を追加
DateSeriesFix();
//日付の異常ある銘柄を表示してヘルプからバージョン情報をクリックすると表示銘柄のみデータが更新されます。
//これを銘柄を変更しながら繰り返す 念のため修正したいデータファイルを別フォルダにコピーしておくこと