04-01-2019, 11:01 PM
Пытаюсь сделать редактор бинарного файла но что то не получается.
Почитал и смог сделать чтение и вывод в datagridview но вот чтобы он редактировал и потом сохранял не смог, мб кто то сможет помочь?
Вот исходник и сам файл который пытаюсь отредактировать.
http://rgho.st/8sscvGls2
Почитал и смог сделать чтение и вывод в datagridview но вот чтобы он редактировал и потом сохранял не смог, мб кто то сможет помочь?
Вот исходник и сам файл который пытаюсь отредактировать.
http://rgho.st/8sscvGls2
MAIN
[SRC="csharp"]
public partial class MainWindow : Window
{
public string Name { get; set; }
public string Capital { get; set; }
public int Area { get; set; }
public double Population { get; set; }
public MainWindow()
{
InitializeComponent();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
Close();
}
private void MenuItem_Click_1(object sender, RoutedEventArgs e)
{
var dlg = new OpenFileDialog
{
Filter = "Binary file (*.dat)|*.dat"
};
if (dlg.ShowDialog() == true)
{
PathFile.Text = dlg.FileName;
}
BindingList<CountryModel> data = new BindingList<CountryModel>();
TestGrid.ItemsSource = data;
string inputPath = dlg.FileName;
using (BinaryReader reader = new BinaryReader(File.Open(inputPath, FileMode.Open, FileAccess.Read, FileShare.Read)))
{
while (reader.PeekChar() > -1)
{
int nameL = reader.ReadByte();
char[] name = reader.ReadChars(nameL);
int capitalL = reader.ReadByte();
char[] capital = reader.ReadChars(capitalL);
int area = reader.ReadInt32();
double population = reader.ReadDouble();
string na = new string(name);
string ca = new string(capital);
data.Add(new CountryModel(na, ca, area, population));
}
}
}
private void MenuItem_Click_2(object sender, RoutedEventArgs e)
{
var dlg = new SaveFileDialog
{
Filter = "Binary file (*.dat)|*.dat"
};
if (dlg.ShowDialog() == true)
{
Save(dlg.FileName);
}
}
/*
*private void Save(string outputPath)
{
using (var fs = new FileStream(outputPath, FileMode.Create))
{
using (var bw = new BinaryWriter(fs))
{
}
}
}*/
}
[/SRC]
public partial class MainWindow : Window
{
public string Name { get; set; }
public string Capital { get; set; }
public int Area { get; set; }
public double Population { get; set; }
public MainWindow()
{
InitializeComponent();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
Close();
}
private void MenuItem_Click_1(object sender, RoutedEventArgs e)
{
var dlg = new OpenFileDialog
{
Filter = "Binary file (*.dat)|*.dat"
};
if (dlg.ShowDialog() == true)
{
PathFile.Text = dlg.FileName;
}
BindingList<CountryModel> data = new BindingList<CountryModel>();
TestGrid.ItemsSource = data;
string inputPath = dlg.FileName;
using (BinaryReader reader = new BinaryReader(File.Open(inputPath, FileMode.Open, FileAccess.Read, FileShare.Read)))
{
while (reader.PeekChar() > -1)
{
int nameL = reader.ReadByte();
char[] name = reader.ReadChars(nameL);
int capitalL = reader.ReadByte();
char[] capital = reader.ReadChars(capitalL);
int area = reader.ReadInt32();
double population = reader.ReadDouble();
string na = new string(name);
string ca = new string(capital);
data.Add(new CountryModel(na, ca, area, population));
}
}
}
private void MenuItem_Click_2(object sender, RoutedEventArgs e)
{
var dlg = new SaveFileDialog
{
Filter = "Binary file (*.dat)|*.dat"
};
if (dlg.ShowDialog() == true)
{
Save(dlg.FileName);
}
}
/*
*private void Save(string outputPath)
{
using (var fs = new FileStream(outputPath, FileMode.Create))
{
using (var bw = new BinaryWriter(fs))
{
}
}
}*/
}
[/SRC]