Przeniesienie programu z Delphi na C# - prośba o sugestie

0

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:

  1. Wczytuję CSV (oddzielany średnikami), który zawiera kilkanaście kolumn i kilka tysięcy wierszy.
  2. Program zapisuje te dane do komponentu StringGrid, a następnie na tym komponencie wykonywane są odpowiednie operacje (powstają dodatkowe kolumny, inne są zmieniane).
  3. 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

0

Wczytaj plik, zdeserializuj, zrób z tymi danymi co ta m chcesz, serializuj i zapisz.

0

Wczytując plik zapisywać poszczególne wartości do tabeli tak jak to robiłem do tej pory, czy może rozbijać go dalej na klasy, listy czy co tam jeszcze? Mając wartości w tablicy poradzę sobie z modyfikacją danych, np.

if (tablica[0][0]==tablica[1][0]) {
    tablica[0][1]="Franek"
}

problem będzie z powiększeniem tablicy, bo dochodzą dodatkowe kolumny, które są wyliczane na podstawie innych wartości, dochodzi jeszcze sortowanie. W Delphi jakoś sobie z tym poradziłem, aczkolwiek program nie jest zbyt szybki...

dodanie znacznika <code class="cpp"> - @furious programming

1 użytkowników online, w tym zalogowanych: 0, gości: 1