2013-01-06 3 views
10

Questa applicazione console scriverà i file .txt sul disco.Come si inseriscono le schede nelle stringhe per un'applicazione console C#?

L'utente desidera importare questi file .txt in Excel in modo che siano formattati correttamente, quindi ho intenzione di utilizzare le schede.

Continuo a ricevere queste sciocchezze "qualche stringa/tqualche altra stringa/t/tqualche altra stringa". Non c'è nessun ambiente. Come c'è Environment.NewLine.

Come si ottengono le schede e non/t nelle stringhe?

Sono sicuro che c'è un modo e probabilmente sarà così ovvio che dovrò chiamarmi svenire tutto il giorno in risposta.

(. Sono aperto ad altre soluzioni, così avrei potuto usare | o qualche altro delimitatore/carattere.)

+1

No, non esiste una costante predefinita da utilizzare per il carattere di tabulazione. Guarda la stessa domanda [Programmaticamente usando il carattere di tabulazione in .NET?] (Http://stackoverflow.com/questions/2686536/programmatically-using-tab-character-in-net) A proposito è '\ t' not '/ t' – Steve

risposta

27

schede nelle stringhe sono in genere scritti \t, non /t. Stai sfuggendo alla tua stringa correttamente?

+10

L'estensione del mio imbarazzo per questa risposta corretta non verrà pronunciata. – Thomas

+0

@Thomas ... non essere così duro con te stesso. Chiunque può avere una domenica scorsa :) –

3

Se lo scopo è quello di creare file di testo che verranno importati int excel perché non si usano valori separati da virgola. Maggiori informazioni http://en.wikipedia.org/wiki/Comma-separated_values

+0

Le stringhe contengono molte virgole, quindi ho terminato con questo esempio "Usa 10 grammi di acqua, 20 grammi di farina ..." come: Colonna A "Usa 10 grammi di acqua" e Colonna B "20 grammi di farina" quando quello che voglio è l'intera frase nella colonna A. – Thomas

+1

http://stackoverflow.com/questions/769621/dealing-with-commas-in-a-csv-file http: // tools .ietf.org/html/rfc4180 Esempio di codice per la gestione dei valori CSV. I tuoi elementi vengono separati in colonne perché le virgole effettive devono essere sfuggite. – JLRishe

+0

Davvero? Quindi potrei usare le virgole, perché ora che il problema "/ t" è stato risolto con "\ t", non sto ancora ottenendo la separazione delle colonne. I miei ringraziamenti. – Thomas

3

Tecnicamente esiste una costante di tabulazione in. NET. È in Microsoft.VisualBasic.dll.

var tab = Microsoft.VisualBasic.Constants.vbTab; 

Ma non vi è alcun motivo per utilizzare vbTab, è possibile utilizzare solo \ t con lo stesso risultato.

+2

Si stava richiedendo la costante della scheda .NET. Ed è lì in Microsoft.VisualBasic.dll, che è uguale a \ t, ma solo costante MS. Se necessario, puoi trovare molte costanti di carattere in Microsoft.VisualBasic.Constants. Anche Microsoft.VisualBasic.dll fa parte di .NET e non è specifico di VisualBasic, anche se si dice che VisualBasic possa essere usato anche in C#. –

2

Se si sente veramente disgustato da questo \t domanda, perché non scrivere una semplice classe di utilità

public static class MyUtility 
{ 
    public static string Tab 
    { 
     get{return "\t";} 
    } 
} 

ora è possibile utilizzare nel codice per costruire scheda separata corde ....

string test = "MyFirstString" + MyUtility.Tab + "MySecondString" + MyUtility.Tab ....... 

ma, ancora, PERCHÉ?, non vi è alcun motivo per non utilizzare il numero predefinito standard escape sequence

+0

Questo è abbastanza bello. Lo ruberò e lo userò avidamente. – Thomas

+0

E grazie per [Escape Sequences] (http://msdn.microsoft.com/en-us/library/h21280bw.aspx). Mi permetto di ammettere che ho sempre voluto sapere come gestire i caratteri ASCII in notazione esadecimale. E schede verticali! Cosa diamine. È uno smörgåsbord di cose nuove. – Thomas