programación contar las lineas de un archivo
1) Contar el número de líneas en un archivo. "El carácter CR" termina una línea.
contarCR
| r g e|
e := FillInTheBlankMorph request: 'ingrese el nombre del archivo seguidode: .txt'.
g := FileStream readOnlyFileNamed: e.
m := 0.
[g atEnd]
whileFalse: [g next = Character cr
ifTrue: [r := r + 1]].
g close.
^ r
2) Contar el número de líneas en un archivocon la letra "Z" de cada uno de ellas.
conteoZ
| m f a lineas linea |
a := FillInTheBlankMorph request: 'ingrese el nombre del archivo seguido de: .txt'.
f := FileStream readOnlyFileNamed:a.
lineas := OrderedCollection new.
m := 0.
[f atEnd]
whileFalse: [linea := f upTo: Character cr.
lineas add: linea].
lineas
do: [:d | d
do: [:c | c = $z
ifTrue: [m := m +1]]].
f close.
^ m
3) Imprimir en el Transcript cada línea que tiene la 'Z'. La mejor manera de salvar a una línea en caso de que desee imprimirlo es ponerlo en un WriteStream. Puede crear unaWriteStream en una cadena diciendo “WriteStream On: new String “, usted puede poner un carácter en ella con nextPut:, y se puede obtener el contenido de un stream con el mensaje contents.
lineasz| f a lineas linea |
a := FillInTheBlankMorph request: 'ingrese el nombre del archivo seguido de: .txt'.
f := FileStream readOnlyFileNamed: a.
lineas := OrderedCollection new.
[f atEnd]whileFalse: [linea := f upTo: Character cr.
lineas add: linea].
Transcript open.
f close.
lineas
do: [:d | d
do: [:c | c = $z
ifTrue: [Transcript show: d;
cr]]]
4)Suponga que hay un archivo llamado 'agenda' que consiste en líneas de dos campos. El primer campo es un nombre, y se ha interrumpido por un carácter de tabulación. El segundo campo es un número deteléfono, y se ha interrumpido por un carácter de fin de línea (es decir, "el carácter CR"). Dado un nombre, imprimir en el Transcript el número de teléfono que va con ella.
contacto
| f m n...
Regístrate para leer el documento completo.