specifica relativa a un file di testo

4

Ho una specifica che devo seguire (per un piccolo progetto) e voglio chiedere se il mio modo di pensare su come affrontare questa specifica è corretto. Riguarda C #.

Specification:

  1. utilizza un file TEXT (.txt) da una cartella locale
  2. Fornire la possibilità di:
    • elimina tutte le vocali
    • rimuovi tutti i caratteri non alfabetici
    • sostituisce una stringa specifica (utilizzando un'espressione regolare) con xxxxxx

Requisiti di elaborazione:

  1. importa l'intero file in memoria
  2. analizza il contenuto e rimuovi / rimuovi / sostituisci

Requisiti di output

  1. scrivi un singolo file TEXT come OriginalName + Parsed.txt

Il file di testo deve contenere

File originale (non elaborato), alla fine di questa sezione aggiungi un sommario con il conteggio di TUTTE le parole e i caratteri.

divisore --------------- per separare il non elaborato dall'elaborato

i dati elaborati, alla fine della sezione aggiungi un riepilogo con il conteggio di TUTTE le parole e i caratteri.

OK ecco il mio modo di affrontarlo:

importa un file di testo vuoto che verrà salvato come OriginalName + _Parsed.txt e includerà la stessa riga nel file di testo con il riepilogo ... poi il divisore ------... quindi la riga elaborata in cui vengono rimosse le vocali, i caratteri non alpha e la stringa specifica sostituita da xxxxx. Include anche un riassunto Ti sembra il modo giusto per affrontarlo? Voglio chiedere che cosa è un'espressione regolare e che aspetto dovrebbe avere la linea finale in modo da poterla abbinare?

Anche un'ultima cosa, dice, assicurati che la versione compilata dell'applicazione possa essere testata su Windows 8.1.64bit che non ha installato Visual Studio. Lo sto facendo su Visual Studio, ma dovrei eseguire l'applicazione sull'applicazione console C # in modo che possano vederlo senza bisogno di Visual Studio? Dice il debug con la riga di comando e nessuna GUI coinvolta.

    
posta TIS 09.06.2015 - 13:22
fonte

1 risposta

1

Visto che ne hai bisogno (ed) per "un inserimento lavorativo", ho fornito un "programma" LinqPad VB.NET che non risolve alcune delle specifiche, e tuttavia evidenzia anche alcuni problemi con le specifiche:

Sub Main
    Dim Filename = "T:\Temp\SomeTextFile.txt"
    Dim content = ReadFile(Filename)
    Using output=CreateFile(ParsedName(Filename))
        WriteContentWithSummary(output,content)
        output.WriteLine("---------------")
        WriteContentWithSummary(output,Parse(content))
        output.Close
    ENd Using
End Sub

' Define other methods and classes here
Function ReadFile(ByVal Filename as String) As IEnumerable(Of String)
  Return File.ReadAllLines(Filename)
End Function

Function CreateFile(ByVal Filename as String) As TextWriter
  Return File.CreateText(Filename)
End Function

Function ParsedName(ByVal Filename as String) As String
  Return Path.Combine(Path.GetDirectoryName(FileName), _
    Path.GetFileNameWithoutExtension(Filename) & "_Parsed" _
      & Path.GetExtension(Filename))
End Function

Sub WriteContentWithSummary(ByVal Output as TextWriter, _
                            ByVal Content As IEnumerable(Of String))
  Dim words = 0
  Dim chars = 0
  For each line in Content
    words+=Regex.Matches(line,"\w+").Count
    chars+=line.Length
    Output.WriteLine(line)
  Next
  Output.WriteLine()
  Output.WriteLine("Words: {0} Chars: {1}", words, chars)
  Output.WriteLine()
End Sub

Function Parse(ByVal Content As IEnumerable(Of String)) As IEnumerable(Of String)
  Return From l In Content _
         Let noVowels = StripVowels(l), _
             onlyAlpha=StripNonAlpha(noVowels) _
         Select Regex.Replace(onlyAlpha,"BDWRD","xxxxxx")
End Function

Function StripVowels(Byval Line As String) As String
  Return Regex.Replace(Line,"[AEIOUaeiou]+", "")
End Function

Function StripNonAlpha(Byval Line As String) As String
  Return Regex.Replace(Line,"[^A-Za-z]+", "")
End Function

Il problema principale che evidenziamo è che se non leggi le specifiche come parametri che richiedono di scegliere quale delle abilità del punto 2 sono applicate, allora il numero di parole per il testo analizzato dovrebbe essere 0 o 1 perché in realtà le nuove linee dovrebbero vai anche tu.

    
risposta data 19.06.2015 - 17:45
fonte

Leggi altre domande sui tag