Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Помогите разобраться с парсером


Автор: Redsweet 16.9.2009, 18:37
Необходимо разработать консольное приложение, предназначенное для обработки исходного файла в определенном формате. Программа должна предоставлять собой консольное приложение. 

Входные параметры:
- Имя входного файла;
- Имя выходного файла.


Пример входных параметров:

Код

 
Task2App.exe “input.txt” “output.xml”     



Формат входного файла:

Код

 
Begin Application
    Name="Приложение"
    Begin Files
        Begin File
            Name="app.exe"
        End File
    End Files
End Application
Begin Package
    Name="Microsoft Visual Studio 2005 Report Viewer"
    LicenseAgreement="EULA0"
    PackageCode="Microsoft.ReportViewer.8.0.en"
    Begin Commands
        Reboot="Defer"
        Begin Command
            PackageFile="ReportViewer\ReportViewer.exe"
            Arguments=" /q:a /q /l""
            EstimatedInstalledBytes="5000000"
            EstimatedInstallSeconds="300"
            Begin InstallConditions
                Begin BypassIf
                    Property="ReportViewerInstalled"
                    Compare="ValueNotEqualTo"
                    Value="0"
                End BypassIf
                Begin FailIf
                    Property="AdminUser"
                    Compare="ValueEqualTo"
                    Value="false"
                    Text="Administrator permissions are required to install Microsoft Visual Studio 2005 Report Viewer. Contact your administrator."
                End FailIf
            End InstallConditions
            Begin ExitCodes
                Begin ExitCode
                    Value="0"
                    Result="Success"
                End ExitCode
                Begin ExitCode
                    Value="3010"
                    Result="SuccessReboot"
                End ExitCode
                Begin ExitCode
                    Value="4097"
                    Result="Fail"
                    Text="Administrator permissions are required to install Microsoft Visual Studio 2005 Report Viewer. Contact your administrator."
                End ExitCode
                Begin DefaultExitCode
                    Result="Fail"
                    FormatMessageFromSystem="true"
                    Text="A failure occurred attempting to install Microsoft Visual Studio 2005 Report Viewer."
                End DefaultExitCode
            End ExitCodes
        End Command
    End Commands
    Begin InstallChecks
        Begin ExternalCheck
            Property="ReportViewerInstalled"
            PackageFile="ReportViewer\ReportViewerChk.exe"
        End ExternalCheck
    End InstallChecks
    Begin PackageFiles
        CopyAllPackageFiles="false"
        Begin PackageFile
            Name="ReportViewer\ReportViewer.exe"
            HomeSite="http://go.microsoft.com/fwlink/?LinkId=49981"
            PublicKey="3082010A0282010100"
            Size="1921224"
        End PackageFile
        Begin PackageFile
            Name="ReportViewer\ReportViewerChk.exe"
            PublicKey="3082010A0282010101"
        End PackageFile
    End PackageFiles
    Begin RelatedProducts
        Begin DependsOnProduct
            Code="Microsoft.Net.Framework.2.0"
        End DependsOnProduct
    End RelatedProducts
End Package
Begin Package
    Name="Prerequisutes Studio 2.0"
    LicenseAgreement="EULA1"
    PackageCode="PrerequisitesStudio.2.0"
    Begin Commands
        Reboot="Immediate"
        Begin Command
            PackageFile="PrerequisitesStudio\pStudio2.exe"
            Arguments=" /i /q"
            EstimatedInstallSeconds="1000000"
            EstimatedInstalledBytes="400"
            EstimatedTempBytes="0"
        End Command
    End Commands
    Begin PackageFiles
        CopyAllPackageFiles="true"
        Begin PackageFile
            Name="PrerequisitesStudio\pStudio2.exe"
            Hash="DG874DF54VTN8S5B8JS6"
        End PackageFile
    End PackageFiles
End Package     



Формат выходного файла:

Код

<Packages>
    <Package Name=“Microsoft Visual Studio 2005 Report Viewer” Code=“Microsoft.ReportViewer.8.0.en” />
    <Package Name=“Prerequisutes Studio 2.0” Code=“PrerequisitesStudio.2.0” />
</Packages>
<Files>
    <File Name=“ReportViewer\ReportViewer.exe” Hash=“3082010A0282010100” Arguments=“ /q:a /q /l” />
<File Name=“ReportViewer\ReportViewerChk.exe” Hash=“3082010A0282010101” Arguments=“” />
    <File Name=“PrerequisitesStudio\pStudio2.exe” Hash=“DG874DF54VTN8S5B8JS6” Arguments=“ /i /q” />
</Files>


Суть вопроса в том, что я впервые сталкиваюсь с подобной задачей. И мне не понятно что означает текст во входном файле и на основе чего генерируется выходной файл?! И что показывает выходной файл? Как реализовать это в приложении?

Автор: wester 16.9.2009, 19:27
Redsweet, 
построчно парсить файл , 
на основе регулярок проверять параметры, далее строить правильный XML 


PS а а даваться исходный файл будет всегда одинаковой структуры и длины ? ленивый вариант - перебирать отдельные строчки и записывать их в XML

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)