Witam
Przymierzam się do przeniesienia swojego programu napisanego w Delhpi na C#. Jako, że chciałbym zrobić to tak jak "Pan Bóg przykazał" zwracam się do Was z prośbą o porady w tej kwestii.
Ogólne założenie programu jest takie, że wczytuje dane z pliku, odpowiednio je przerabiam, a następnie generuje plik tekstowy w formacie XML.
Niestety robiłem to "po swojemu", nie według panujących standardów (których nas nie nauczono) i program działa nastąpująco:
- Wczytuję CSV (oddzielany średnikami), który zawiera kilkanaście kolumn i kilka tysięcy wierszy.
- Program zapisuje te dane do komponentu StringGrid, a następnie na tym komponencie wykonywane są odpowiednie operacje (powstają dodatkowe kolumny, inne są zmieniane).
- Dane ze StringGrid'a zapisywane są następnie do pliku tekstowego linijka po linijce za pomocą metody "WriteLn" przykład:
Writeln(F, '<?xml version="1.0" encoding="UTF-8"?>');
Writeln(F, ' <ns0:plikImp xmlns:osoba="urn:www:imp:element:osoba:2_0" ');
(...)
for y:=1 to Stringgrid1.RowCount-1 do // zerowy wiersz zawiera nazwy kolumn
begin
WriteLn(F, ' <pole1>'+Stringgrid1.Cells[1,y]+'</pole1>');
WriteLn(F, ' <pole2>'+Stringgrid1.Cells[2,y]+'</pole2>');
WriteLn(F, ' <pole3>'+Stringgrid1.Cells[5,y]+'</pole3>');
(...)
end;
Writeln(F, '</ns0:plikImp> ' );
Jak widać korzystam tylko z podstawowych komponentów.
Proszę o sugestie jak powinien być robiony taki program (wczytywanie -> przeróbka -> XML)? Do generowania XML prawdopodobnie wykorzystuje się schematy XSD? Zapewne C# posiada odpowiednie klasy i metody pozwalające na import XSD i generowanie XML. Może powinienem zastosować jakiś szablon?
Myślę, że na aktualnym poziomie znajomości C# byłbym w stanie zrobić "kopię" swojego programu, ale nie sądzę, żeby był on zrobiony idealnie (szczególnie chodzi mi tutaj o komponent do przechowywania danych - StringGrid, czy zapisywanie danych do pliku, bez wykorzystywania schematów XSD).
Z góry dziękuję za pomoc i zainteresowanie.
Pozdrawiam
Radek