2011-06-09 7 views
5

¿Está detectando pestañas igual que detectando los espacios? es decir, para detectar un espacio, simplemente compararía el carácter espacial con su número ascii.¿Cómo detectar una pestaña en un archivo de texto?

Para una pestaña, ¿tengo que buscar el carácter '\ t' en el archivo o hay alguna otra manera?

+2

Uhm, la ficha también tiene un número ASCII: 9 –

+0

Asegúrese de seleccionar una respuesta: hace que las personas sean más propensas a responder sus preguntas en el futuro y les recompensa por su prontitud y esfuerzo. – Cryo

+0

@Cryo gracias, pero no necesitaba este recordatorio, si lo ve en un comentario a continuación, todavía no está seguro si su valor ascii se debe utilizar para comprobar o no. Seleccionaré la respuesta una vez que se confirme. –

Respuesta

3

Suponiendo que está trabajando con datos ASCII, puede buscar un byte con el valor '\ t' (9) en el archivo de texto. Las pestañas se representan como un solo byte en los archivos de texto y la mayoría de las bibliotecas para leer archivos no hacen nada especial con esos bytes.

+0

Todos ustedes han dicho las mismas cosas, así que gracias a todos ustedes :) –

+1

Afortunado que tuvo ese bit "asumiendo", hay algo más molesto que los snobs ASCII :-) – paxdiablo

+0

@paxdiablo: ¿podría por favor elaborar un poco? – Nick

1

Una pestaña es simplemente otro carácter para que pueda verificar el valor ASCII si lo desea.

1

Aunque una pestaña aparece como 4 u 8 espacios en un editor, en realidad se representa como un solo carácter ('\ t', como usted mencionó) dentro de un archivo. Tanto el carácter de espacio como el de tabulación ocupan un byte. Entonces, básicamente, estás en lo correcto en tu suposición.

5
if('\t' == myChar) 

Esto funcionaría, y sería mejor que consultar 9 ya que 9 puede no ser un valor garantizado en todas las arquitecturas.

+0

Interesante: ¿tiene un ejemplo de cuando '\ t' no es 9? – Nick

+0

Además, ¿quiere decir que la tabla ascii estándar puede diferir en determinadas circunstancias? Si es así, ¿puedes indicar cuáles son? –

+1

No conozco ningún ejemplo real, es por eso que dije 'puede que no', pero en cualquier caso el uso de '\ t' dejará que el compilador sustituya el valor correcto (9 o de otro modo). –

Cuestiones relacionadas