![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Перевод с delphi на C# |
|
.NET - Перевод с delphi на C#
|
Новый участник Сообщения: 4 |
Прошу помочь с переводом следующих фрагментов кода, т.к. с delphi более или менее знаком, а с С# только начинаю:
unit StData; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls, Contnrs, CodeUnit; type TStQuestion = class private FActive: boolean; FText: string; public StAnswerList: TObjectList; constructor Create; property Active: boolean read FActive write FActive; property Text: string read FText write FText; end; TStAnswer = class private FRight: Boolean; FStQuestion: TStQuestion; FText: string; public property Right: Boolean read FRight write FRight; property StQuestion: TStQuestion read FStQuestion write FStQuestion; property Text: string read FText write FText; end; TStTest = class(TObject) private FQCount: Integer; FText: string; public property Text: string read FText write FText; property QCount: Integer read FQCount write FQCount; end; TStData = class(TObject) private FStQuestionList: TObjectList; FStTest: TStTest; XMLDocument: IXMLDocument; FFileName: string; procedure LoadData; public procedure Load(setFileName: string); procedure LoadFromXml(XMLStr: string); procedure LoadEmpty; procedure Save; procedure AppendQuestion( newQuestion: TStQuestion ); procedure DeleteQuestion( delQuestion: TStQuestion ); class function GetInstance: TStData; property FileName: string read FFileName write FFileName; property StQuestionList: TObjectList read FStQuestionList; property StTest: TStTest read FStTest; strict private constructor Create; strict private class var FInstance: TStData; end; implementation constructor TStQuestion.Create; begin StAnswerList := TObjectList.Create; end; constructor TStData.Create; begin XMLDocument := TXMLDocument.Create( nil ); FStQuestionList := TObjectList.Create; FStTest := TStTest.Create; LoadEmpty; end; procedure TStData.Load(setFileName: string); begin FFileName := setFileName; XMLDocument.LoadFromXml( TStEncode.GetFile(setFileName) ); LoadData; end; procedure TStData.LoadFromXml(XMLStr: string); begin XMLDocument.LoadFromXML( XMLStr ); LoadData; end; procedure TStData.LoadEmpty; const DEFAULT_HEADER = '<?xml version="1.0" encoding="UTF-8"?>' + '<test text="" qcount="0"></test>'; begin XMLDocument.LoadFromXML( DEFAULT_HEADER ); LoadData; FFileName := ''; end; procedure TStData.AppendQuestion( newQuestion: TStQuestion ); begin FStQuestionList.Add( newQuestion ); end; procedure TStData.DeleteQuestion( delQuestion: TStQuestion ); begin FStQuestionList.Remove( delQuestion ); end; class function TStData.GetInstance: TStData; begin if FInstance = nil then begin FInstance := TStData.Create; end; Result := FInstance; end; procedure TStData.LoadData; var i, j: integer; tmpQuestion: TStQuestion; tmpAnswer: TStAnswer; Root: IXMLNode; Node: IXMLNode; begin FStQuestionList.Clear; Root := XMLDocument.DocumentElement; FStTest.Text := Root.Attributes['text']; FStTest.QCount := StrToInt( Root.Attributes['qcount'] ); for i := 0 to Root.ChildNodes.Count - 1 do begin tmpQuestion := TStQuestion.Create; tmpQuestion.Text := Root.ChildNodes[i].Attributes['text']; tmpQuestion.Active := StrToBool( Root.ChildNodes[i].Attributes['active'] ); Node := Root.ChildNodes[i]; for j := 0 to Node.ChildNodes.Count - 1 do begin tmpAnswer := TStAnswer.Create; tmpAnswer.StQuestion := tmpQuestion; tmpAnswer.Right := StrToBool( Node.ChildNodes[j].Attributes['right'] ); tmpAnswer.Text := Node.ChildNodes[j].Attributes['text']; tmpQuestion.StAnswerList.Add( tmpAnswer ); end; FStQuestionList.Add( tmpQuestion ); end; end; procedure TStData.Save; var List: TObjectList; i, j: integer; tmpAnswer: TStAnswer; Root: IXMLNode; Node: IXMLNode; NodeAns: IXMLNode; XMlStr: string; begin List := FStQuestionList; Root := XMLDocument.DocumentElement; Root.Attributes['text'] := StTest.Text; Root.Attributes['qcount'] := IntToStr(StTest.QCount); Root.ChildNodes.Clear; for i := 0 to List.Count - 1 do begin Node := Root.AddChild( 'question' ); Node.Attributes['text'] := TStQuestion( List.Items[i] ).Text; Node.Attributes['active'] := TStQuestion( List.Items[i] ).Active; for j := 0 to TStQuestion( List.Items[i] ).StAnswerList.Count - 1 do begin tmpAnswer := TStAnswer( TStQuestion( List.Items[i] ).StAnswerList.Items[j] ); NodeAns := Node.AddChild( 'answer' ); NodeAns.Attributes['right'] := BoolToStr( tmpAnswer.Right, true ); NodeAns.Attributes['text'] := tmpAnswer.Text; end; end; XMLDocument.SaveToXML( XMlStr ); TStEncode.SaveFile( XMlStr, FFileName ); end; end. |
|
------- Отправлено: 13:31, 01-04-2012 |
Пользователь Сообщения: 139
|
Профиль | Отправить PM | Цитировать И ты планируешь, что тебе тут все напишут?
|
------- Отправлено: 14:25, 01-04-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Хотя бы вот эти две строки:
constructor Create; property Active: boolean read FActive write FActive; с остальным я разобрался. |
------- Отправлено: 15:44, 01-04-2012 | #3 |
Пользователь Сообщения: 139
|
Профиль | Отправить PM | Цитировать Ну насколько я понимаю, здесь описан конструктор и свойство.
|
------- Отправлено: 21:41, 01-04-2012 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Вот с этими строками у меня проблемы. не знаю как их написать на С#.
|
|
------- Отправлено: 22:02, 01-04-2012 | #5 |
Пользователь Сообщения: 139
|
Профиль | Отправить PM | Цитировать Ну если класс у тебя называется Create, то конструктор этого класса будет писать так
Насчет второго в шарпе есть такая штука, называется она - автосвойства. Благодаря этой штуке второе будет описываться так |
------- Отправлено: 22:13, 01-04-2012 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо
|
------- Отправлено: 22:37, 01-04-2012 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Перевод с Pascal на C++ | Snake750 | Программирование и базы данных | 14 | 14-09-2015 04:48 | |
C/C++ - Перевод с Pascal на C++ | Ru1nN | Программирование и базы данных | 0 | 21-12-2011 22:45 | |
Перевод сайта EN->RU | timon4ik | Программное обеспечение Windows | 6 | 20-09-2006 09:07 | |
Интерактивный перевод | Ser6720 | Хочу все знать | 3 | 16-06-2006 19:14 | |
Delphi - Delphi | UpperCase на Delphi 7 | Cognolio | Программирование и базы данных | 3 | 26-01-2006 15:42 |
|