Menú
Está libre
registro
hogar  /  Consejo/ Trabajos trimestrales, trabajos de laboratorio y diplomas en informática.

Trabajos trimestrales, trabajos de laboratorio y diplomas en informática.

Trabajando con cuerdas. Clase de cadena. Constructores de clases. Las funciones asignar (), agregar (), insertar (), reemplazar (), borrar (), buscar (), rfind (), comparar (), c_str (). Ejemplos de

1. ¿Cuál es el propósito de la clase de cadena en los programas C ++?

La clase de cadena está diseñada para trabajar con cadenas de tipo char *, que son cadenas terminadas en nulo. La clase de cadena se introdujo como Opción alternativa para trabajar con cadenas de tipo char *. Líneas que terminan con un personaje ‘\0’ también llamado C-strings. Dado que la cadena es una clase, puede declarar objetos de esta clase.

2. ¿Qué módulos (bibliotecas) deben conectarse para utilizar las capacidades de la clase de cadena en MS Visual Studio C ++?

Para utilizar las capacidades de la clase de cadena en MS Visual Studio (C ++), debe incluir la biblioteca y el espacio de nombres estándar.

#incluir usando el espacio de nombres std;
3. ¿Cómo se declara una variable del tipo cadena? Ejemplos de

La declaración de una variable de tipo cadena se realiza de la misma forma que una variable regular. Posible variante declaraciones de inicialización simultáneas.

// tipo de cadena string s1; // variable llamada s1 de tipo cadena string s2 = "Esta es una variable de cadena"; // declaración con inicialización // usando una variable de tipo cadena con un operador de asignación s1 = s2; // s1 = "Esta es una variable de cadena" s2 = "Nuevo texto";
4. ¿Cuáles son las ventajas y desventajas de usar la clase de cadena frente a char *?

La creación del nuevo tipo de cadena se debió a las deficiencias de trabajar con cadenas de caracteres, que demostró el tipo char *. En comparación con el tipo char *, el tipo de cadena tiene las siguientes ventajas principales:

  • la capacidad de procesar cadenas utilizando operadores C ++ estándar ( = , + , = = , <> etc.). Como sabe, al usar el tipo char *, incluso las operaciones más simples con cadenas parecían complicadas y requerían una escritura excesiva código de programa;
  • asegurando la mejor confiabilidad (seguridad) del código del programa. Por ejemplo, al copiar cadenas, el tipo de cadena proporciona las acciones adecuadas que pueden ocurrir si la cadena de origen es más grande que la cadena de destino;
  • proporcionando una cadena como tipo de datos independiente. La declaración del tipo de cadena como cadena es la misma para todas las variables del programa, lo que garantiza la coherencia de los datos.

La principal desventaja del tipo de cadena en comparación con el tipo char * es la velocidad de procesamiento de datos más lenta. Esto se debe a que el tipo de cadena es en realidad una clase de contenedor. Y trabajar con una clase requiere una implementación adicional del código del programa, lo que, a su vez, requiere más tiempo.

5. ¿Qué operadores se pueden usar con objetos de la clase string?

La clase de cadena es conveniente porque le permite manipular cadenas de manera conveniente utilizando operadores estándar (sobrecargados).

Los siguientes operadores se pueden usar con objetos de la clase string

  • = - asignación
  • + - concatenación (concatenación de cadenas)
  • += - asignación con concatenación
  • == - igualdad
  • != - desigualdad
  • < - más pequeño
  • <= - Menos que o igual a
  • > - más
  • >= - más o igual
  • - indexación

Ejemplo, que demuestra el uso de los operadores anteriores

// tipo de cadena, operaciones sobre cadenas cadena s1 = "s-1"; cadena s2 = "s-2"; string s3; bool b; // operación "=" (asignación de cadenas) s3 = s1; // s3 = "s-1" // operación "+" - concatenación de cadenas s3 = s3 + s2; // s3 = "s-1s-2" // operación "+ =" - asignación con concatenación s3 = "s-3"; s3 + = "abc"; // s3 = "s-3abc" // operación "==" - comparación de cadenas b = s2 == s1; // b = falso b = s2 == "s-2"; // b = verdadero // operación "! =" - comparación de cadenas (no es igual) s1 = "s1"; s2 = "s2"; b = s1! = s2; // b = verdadero // operaciones "<" и ">"- comparación de cadenas s1 = "abcd"; s2 = "de"; b = s1> s2; // b = falso b = s1< s2; // b = true // operaciones "<=" и ">= "- comparación de cadenas (menor o igual, mayor o igual) s1 = "abcd"; s2 = "ab"; b = s1> = s2; // b = verdadero b = s1<= s2; // b = false b = s2 >= "ab"; // b = verdadero // operación - indexación char c; s1 = "abcd"; c = s1; // c = "c" c = s1; // c = "a"
6. ¿La clase de cadena contiene constructores?

Como cualquier clase, la clase de cadena tiene varios constructores. Los principales son los siguientes:

Cuerda (); cadena (const char * str); cadena (cadena constante & str);

7. Ejemplos de inicialización mediante constructores

A continuación se muestran ejemplos de inicialización de variables de tipo cadena

String s1 ("¡Hola!"); string s2 = "¡Hola!" ; // inicialización - cadena de constructor (const char * str) char * ps = "Hola"; cadena s3 (ps); // cadena de inicialización s4 (s3); // inicialización - cadena de constructor (cadena const & str) string s5; // inicialización - constructor string ()

8. Asignación de cadenas. Función Assign (). Ejemplos de

Para asignar una cadena a otra, puede utilizar uno de estos dos métodos:

  • utilizar operador de asignación ‘=’ ;
  • use la función asignar () de la clase de cadena.

La función asignar () tiene varias implementaciones sobrecargadas.

La primera opción es llamar a una función sin parámetros.

Cadena y asignación (anulado);

En este caso, hay una simple asignación de una cadena a otra.

La segunda opción le permite copiar un número determinado de caracteres de una cadena:

Cadena & asignar (const cadena & s, size_type st, size_type num);

  • s - el objeto del que se toma la cadena fuente;
  • st - índice (posición) en la cadena desde la que empezar a copiar num caracteres;
  • num - el número de caracteres a copiar desde la posición st;
  • size_type es un tipo de datos ordinal.

La tercera variante de la función asignar () copia el primer número de caracteres de la cadena s al llamador:

Cadena y asignación (const char * s, size_type num);

  • s - una cadena terminada con un carácter ‘\0’ ;
  • num es el número de caracteres que se copian a la persona que llama. Se copian los primeros números de caracteres de la cadena s.

A continuación se muestra un ejemplo con diferentes implementaciones de la función asignar ().

Ejemplo.

// asignación de cadenas, función asignar () cadena s1 = "sitio"; string s2; string s3; char * ps = "sitio"; s3 = s1; // s3 = "sitio" s2.assign (s1); // s2 = "sitio" s2.assign (s1, 0, 4); // s2 = "mejor" s2.assign (ps, 8); // s2 = "bestprog"
9. Concatenación de cadenas. Función Append (). Ejemplo

La función append () se usa para concatenar cadenas. También puede usar la operación para agregar líneas ‘+’ , por ejemplo:

String s1; string s2; s1 = "abc"; s2 = "def"; s1 = s1 + s2; // s1 = "abcdef"

Sin embargo, la función append () es buena cuando necesita agregar parte de una cadena.

La función tiene las siguientes opciones de implementación:

String & append (const string & s, size_type start); string & append (const char * s, size_type num);

En la primera implementación, la función recibe un enlace a un objeto de cadena s que se agrega a la persona que llama. En la segunda implementación, la función recibe un puntero a una cadena const char *, que termina con el carácter '\ 0'.

Ejemplo. Demostración de la función append ().

String s1 = "abcdef"; s2 = "1234567890"; añadir (s2, 3, 4); // s1 = "abcdef4567" char * ps = "1234567890"; s1 = "abcdef"; s1.append (ps, 3); // s1 = "abcdef123"

10. Insertar caracteres en una línea. Función de inserción. Ejemplo

Para insertar una línea en una posición determinada de otra línea, debe usar la función insert (), que tiene varias opciones de implementación.

La primera versión de la función le permite insertar la cadena completa s en la posición inicial dada de la línea de llamada (objeto de llamada):

String & insert (tamaño_tipo inicio, const cadena & s);

La segunda versión de la función le permite insertar una parte (insStart, num parámetros) de la cadena s en la posición inicial dada de la cadena de llamada:

String & insert (tamaño_tipo inicio, const cadena & s, tamaño_tipo insStart, tamaño_tipo num);

En las funciones anteriores:

  • s - la cadena que se insertará en la cadena de llamada;
  • inicio - la posición en la línea de llamada desde la cual insertar la cadena s;
  • insStart - la posición en la cadena s desde la cual insertar;
  • num es el número de caracteres en la cadena s que se insertarán desde la posición insStart.
cadena s1 = "abcdef"; cadena s2 = "1234567890"; s1.insert (3, s2); // s1 = "abc" + "1234567890" + "def" = "abc1234567890def" s2.insertar (2, s1, 1, 3); // s2 = "12bcd34567890"
11. Reemplazo de caracteres en una cadena. Función Reemplazar (). Ejemplo

La función replace () reemplaza caracteres en la cadena de llamada. La función tiene las siguientes opciones de implementación:

Cadena y reemplazo (tamaño_tipo inicio, tamaño_tipo num, const cadena & s); string & replace (tamaño_tipo inicio, tamaño_tipo num, const cadena & s, tamaño_tipo replStart, tamaño_tipo núm_repl);

En la primera implementación, la cadena de llamada se reemplaza por la cadena s. Es posible establecer la posición (inicio) y el número de caracteres (num) en la línea de llamada, que debe reemplazarse con la cadena s.

La segunda versión de la función replace () difiere de la primera en que le permite reemplazar la cadena de llamada con solo una parte de la cadena s. En este caso, dos parámetros adicionales: la posición de replStart y el número de caracteres en la cadena s que forman la subcadena que reemplaza la cadena de llamada.

Ejemplo. Demostración de la función replace ().

String s1 = "abcdef"; cadena s2 = "1234567890"; s2.replace (2, 4, s1); // s2 = "12abcdef7890" s2 = "1234567890"; s2.replace (3, 2, s1); // s2 = "123abcdef67890" s2 = "1234567890"; s2.replace (5, 1, s1); // s2 = "12345abcdef7890" // reemplazar caracteres, reemplazar () función cadena s1 = "abcdef"; cadena s2 = "1234567890"; s2.replace (2, 4, s1); // s2 = "12abcdef7890" s2 = "1234567890"; s2.replace (3, 2, s1); // s2 = "123abcdef67890" s2 = "1234567890"; s2.replace (5, 1, s1); // s2 = "12345abcdef7890" s2 = "1234567890"; s2.replace (5, 1, s1, 2, 3); // s2 = "12345cde7890" s2 = "1234567890"; s2.replace (4, 2, s1, 0, 4); // s2 = "1234abcd7890"

12. Remoción una cantidad determinada caracteres de la cadena. Función borrar (). Ejemplo

Para eliminar caracteres de la cadena de llamada, use la función erase ():

String & erase (size_type index = 0, size_type num = npos);

  • índice - índice (posición), a partir del cual desea eliminar caracteres en la línea de llamada;
  • num es el número de caracteres que se eliminarán.

Ejemplo.

Cadena s = "01234567890"; borrar (3, 5); // s = "012890" s = "01234567890"; s.erase (); // s = ""

13. Busque un carácter en una cadena. Funciones Find () y rfind (). Ejemplos de

En la clase de cadena, la búsqueda de una cadena en una subcadena se puede realizar de dos formas, que difieren en la dirección de la búsqueda:

  • mirando la cadena de principio a fin usando la función find ();
  • escaneando la cadena de principio a fin con rfind ().

El prototipo de la función find () se ve así:

Size_type find (const string & s, size_type start = 0) const;

  • s: la subcadena que se busca en la cadena, lo que provoca esta función... La función busca la primera aparición de la cadena s. Si la subcadena s se encuentra en la cadena que llamó a la función dada, se devuelve la posición de la primera aparición. De lo contrario, se devuelve -1;

El prototipo de la función rfind () es:

Size_type rfind (const string & s, size_type start = npos) const;

  • s es la subcadena que se debe buscar en la cadena de llamada. La búsqueda de una subcadena en una cadena se realiza de principio a fin. Si la subcadena s se encuentra en la cadena de llamada, la función devuelve la posición de la primera aparición. De lo contrario, la función devuelve -1;
  • npos - posición del último carácter de la línea de llamada;
  • inicio: la posición desde la que se realiza la búsqueda.

Ejemplo 1. Un fragmento de código que demuestra el resultado de la función find ()

// tipo de cadena, función find () cadena s1 = "01234567890"; cadena s2 = "345"; cadena s3 = "abcd"; int pos; pos = s1.find (s2); // pos = 3 pos = s1.find (s2, 1); // pos = 3 pos = s1.find ("jklmn", 0); // pos = -1 pos = s1.find (s3); // pos = -1 pos = s2.find (s1); // pos = -1

Ejemplo 2. Demostración de la función rfind ().

// tipo de cadena, funciones find () y rfind () cadena s1 = "01234567890"; cadena s2 = "345"; cadena s3 = "abcd"; cadena s4 = "abcd --- abcd"; int pos; pos = s1.rfind (s2); // pos = 3 pos = s1.rfind (s2, 12); // pos = 3 pos = s1.rfind (s2, 3); // pos = 3 pos = s1.rfind (s2, 2); // pos = -1 pos = s2.rfind (s1); // pos = -1 pos = s1.rfind (s3, 0); // pos = -1 // diferencia entre las funciones find () y rfind () pos = s4.rfind (s3); // pos = 7 pos = s4.find (s3); // pos = 0
14. Comparación de partes de cuerdas. Función Compare (). Ejemplo

Dado que el tipo de cadena es una clase, puede usar la operación para comparar dos cadenas entre sí ‘= =’ ... Si las dos cadenas son iguales, la comparación será verdadera. De lo contrario, el resultado de la comparación será falso.

Pero si necesita comparar parte de una cadena con otra, entonces se proporciona la función compare () para esto.

El prototipo de la función compare ():

int compare (tamaño_tipo inicio, tamaño_tipo num, const cadena & s) const;
  • s - la cadena para comparar con la cadena de llamada;
  • inicio - posición (índice) en la cadena s, desde la cual comenzar a ver los caracteres de la cadena para compararlos;
  • num es el número de caracteres en la cadena s para comparar con la cadena de llamada.

La función funciona de la siguiente manera. Si la cadena de llamada es menor que la cadena s, la función devuelve -1 (valor negativo). Si la cadena de llamada es mayor que la cadena s, la función devuelve 1 (valor positivo). Si las dos cadenas son iguales, la función devuelve 0.

Ejemplo... Demostración de la función compare ():

// tipo de cadena, función compare () cadena s1 = "012345"; cadena s2 = "0123456789"; int res; res = s1.compare (s2); // res = -1 res = s1.compare ("33333"); // res = -1 res = s1.compare ("012345"); // res = 0 res = s1.compare ("345"); // res = -1 res = s1.compare (0, 5, s2); // res = -1 res = s2.compare (0, 5, s1); // res = -1 res = s1.compare (0, 5, "012345"); // res = -1 res = s2.compare (s1); // res = 1 res = s2.compare ("456"); // res = -1 res = s2.compare ("000000"); // res = 1
15. Obtener una cadena con el carácter de final de línea '\ 0' (char *). Función C_str (). Ejemplo

Para obtener una cadena que termine con un carácter ‘\0’ se utiliza la función c_str ().

Prototipo de función:

const char * c_str () const;

La función se declara con el modificador const. Esto significa que la función no puede modificar el llamador (cadena).

Ejemplo 1... Conversión de cadena a const char *.

// tipo de cadena, función c_str () cadena s = "abcdef"; const char * ps; ps = s.c_str (); // ps = "abcdef"

Ejemplo 2.

A continuación se muestra la traducción de una cadena de cadena al tipo System :: String para mostrarla en un control del tipo Label.

El estándar C ++ moderno define una clase con funciones y propiedades (variables) para organizar el trabajo con cadenas (en el lenguaje C clásico, no hay cadenas como tales, solo hay matrices de caracteres):

#incluir

#incluir

#incluir

Para trabajar con cadenas, también debe conectar el espacio de nombres estándar:

Usando el espacio de nombres std;

De lo contrario, tendrá que especificar el descriptor de clase std :: string en lugar de string en todas partes.

A continuación se muestra un ejemplo de un programa que funciona con cadenas (¡no funciona en compiladores antiguos compatibles con C!):

#incluir #incluir #incluir usando el espacio de nombres std; int main () (string s = "Test"; s.insert (1, "!"); cout<< s.c_str() << endl; string *s2 = new string("Hello"); s2->borrar (s2-> end ()); cout<< s2->c_str (); cin.get (); return 0; )

Las principales características de la clase string:

  • inicialización con una matriz de caracteres (una cadena de tipo incorporado) u otro objeto de tipo cadena. El tipo integrado no tiene la segunda opción;
  • copiando una línea a otra. Para un tipo incorporado, debe usar la función strcpy ();
  • acceso a caracteres individuales de la cadena para lectura y escritura. En una matriz incorporada, esto se hace usando la operación de tomar el índice o el direccionamiento indirecto usando un puntero;
  • comparación de dos cadenas para la igualdad. Para los tipos integrados, se utilizan funciones de la familia strcmp ();
  • concatenación (concatenación) de dos cadenas, dando el resultado como la tercera cadena o en lugar de una de las originales. Para un tipo incorporado, la función strcat () se usa, sin embargo, para obtener el resultado en nueva línea, es necesario utilizar secuencialmente las funciones strcpy () y strcat (), y también ocuparse de la asignación de memoria;
  • medios incorporados para determinar la longitud de una cadena (funciones miembro de la clase size () y l ength ()). Puede averiguar la longitud de una cadena de un tipo incorporado solo mediante el cálculo utilizando la función strlen ();
  • la capacidad de averiguar si una cadena está vacía.

Echemos un vistazo más de cerca a estas características básicas.

Inicializando cadenas al describir y Longitud de la línea(sin incluir el terminador nulo de terminación):

String st ("Mi cadena \ n"); cout<< "Длина " << st << ": " << st.size() << " символов, включая символ новой строки\n";

La cadena se puede dar y vaciar:

String st2;

Para comprobar si esta la linea vacia, puedes comparar su longitud con 0:

If (! St.size ()) // vacío

o use el método vacío (), devolviendo verdadero para una cadena vacía y falso para una cadena no vacía:

If (st.empty ()) // vacío

La tercera forma de creación de cadenas inicializa un objeto de tipo cadena con otro objeto del mismo tipo:

Cadena st3 (st);

La cadena st3 se inicializa con la cadena st. ¿Cómo podemos asegurarnos de que estos las cuerdas coinciden? Usemos el operador de comparación (==):

Si (st == st3) // la inicialización funcionó

Cómo copiar una línea a otra? Con la operación de asignación habitual:

St2 = st3; // copia st3 a st2

Para concatenación de cadenas utilice la operación de suma (+) o la operación de asignación de suma (+ =). Dejemos que se den dos líneas:

String s1 ("hola"); cadena s2 ("mundo \ n");

Podemos obtener la tercera línea, que consiste en la concatenación de las dos primeras, así:

Cadena s3 = s1 + s2;

Si queremos agregar s2 al final de s1, tenemos que escribir:

S1 + = s2;

La operación de suma puede concatenar objetos de clase. cuerda no solo entre ellos, sino también con cadenas de tipo en línea. Puede reescribir el ejemplo anterior para que los caracteres especiales y los signos de puntuación estén representados por el tipo char * incorporado, y las palabras significativas estén representadas por objetos de cadena:

Const char * pc = ","; string s1 ("hola"); cadena s2 ("mundo"); cadena s3 = s1 + pc + s2 + "\ n"; cout<< endl << s3;

Expresiones como estas funcionan porque el compilador "sabe" cómo convertir automáticamente objetos del tipo incorporado en objetos de la clase de cadena. También es posible una simple asignación de una cadena en línea a un objeto de cadena:

String s1; const char * pc = "una matriz de caracteres"; s1 = pc; // Derecha

En este caso, la transformación inversa No funciona... Si intenta realizar la siguiente inicialización de una cadena de tipo incorporada, se producirá un error de compilación:

Char * str = s1; // error de compilación

Para realizar esta conversión, debe llamar explícitamente a la función miembro c_str () ("cadena C"):

Const char * str = s1.c_str ();

La función c_str () devuelve un puntero a una matriz de caracteres que contiene la cadena del objeto de cadena como estaría en un tipo de cadena incorporado. La palabra clave const aquí evita lo "peligroso" en los entornos visuales modernos la posibilidad de modificar directamente el contenido de un objeto a través de un puntero.

PARA personajes individuales Se puede acceder a un objeto de tipo cadena, como un tipo integrado, mediante la operación de tomar el índice. Por ejemplo, aquí hay un fragmento de código que reemplaza todos los puntos con guiones bajos:

String str ("www.disney.com"); int tamaño = str.size (); para (int i = 0; i< size; i++) if (str[i] == ".") str[ i ] = "_"; cout << str;

Reemplazar (str.begin (), str.end (), ".", "_");

Es cierto que aquí no se usa el método de reemplazo de la clase de cadena, sino el algoritmo del mismo nombre:

#incluir

Debido a que el objeto de cadena se comporta como un contenedor, se le pueden aplicar otros algoritmos. Esto le permite resolver problemas que no se resuelven directamente con las funciones de la clase de cadena.

A continuación se muestra una breve descripción de los principales operadores y funciones de la clase de cadena; los enlaces de la tabla conducen a descripciones en ruso en Internet. Para obtener una lista más completa de las capacidades de la clase de cadena, consulte, por ejemplo, Wikipedia o cplusplus.com.

Especificar caracteres en una cadena

operador =

asigna valores a una cadena

asignar

asigna caracteres a una cadena

Acceso a símbolos individuales

a

obtener el carácter especificado comprobando si el índice está fuera de los límites

operador

obteniendo el carácter especificado

parte delantera

obteniendo el primer personaje

espalda

obtener el último personaje

datos

devuelve un puntero al primer carácter de la cadena

c_str

devoluciones inmodificable una matriz de caracteres C que contiene los caracteres de la cadena

Comprobación de la capacidad de la línea

vacío

comprueba si una cadena está vacía

Talla
largo

devuelve el número de caracteres en una cadena

tamaño máximo

devuelve el número máximo de caracteres

reserva

reserva espacio para almacenamiento

Operaciones de cadena

claro

limpia el contenido de la cadena

insertar

insertando símbolos

borrar

eliminar caracteres

hacer retroceder

agregar un carácter al final de la línea

pop_back

elimina el último carácter

adjuntar

operador + =

agrega caracteres al final de la línea

comparar

compara dos cadenas

reemplazar

reemplaza cada aparición del carácter especificado

substr

devuelve una subcadena

Copiar

copia personajes

cambiar el tamaño

cambia el número de caracteres almacenados

Permite al programa abrir archivos de datos en carpetas específicas como si estuvieran en la carpeta actual. Llamado sin parámetros, el comando adjuntar enumera los directorios vinculados.

Sintaxis

adjuntar [; ] [[disco: ]camino[; ...]] [/ X:{sobre|apagado}] [/ sendero:{sobre|apagado}] [/ e]

Opciones

; Borra la lista de carpetas especificadas en llamadas anteriores para agregar. [ disco: ]camino Especifica la unidad y la carpeta que desea adjuntar a la carpeta actual. Si no se especifica ninguna unidad, la unidad actual se utiliza de forma predeterminada. Es posible especificar varias combinaciones [ disco: ]camino separados por punto y coma. / X:{sobre | apagado) Determina si el subsistema MS-DOS buscará carpetas adjuntas al ejecutar programas. / x: encendido la búsqueda de carpetas adjuntas está en curso. / x: apagado no se realiza la búsqueda de carpetas adjuntas. / sendero:{sobre|apagado) Le dice al programa que busque archivos en las carpetas adjuntas si los nombres de los archivos se especifican en su totalidad. El valor predeterminado es / ruta: en... / e Escribe la lista de carpetas adjuntas en la variable de entorno APPEND. Este parámetro de línea de comando solo se puede usar la primera vez que se invoca el comando adjuntar después de iniciar el sistema. /? Muestra ayuda en la línea de comando.

Notas

  • Guardar la lista de carpetas adjuntas

    Parámetro de línea de comando / e comandos adjuntar le permite asignar la lista de carpetas adjuntas a una variable de entorno llamada APPEND. Para hacer esto, primero use el comando adjuntar con solo el parámetro de línea de comando / e... Luego reutiliza el comando adjuntar especificando las carpetas que desea adjuntar. Opciones / e y [ disco: ]camino no se puede utilizar en la misma línea de comando.

  • Configuración de varias carpetas adjuntas

    Para adjuntar varias carpetas, introdúzcalas separadas por punto y coma. Cuando vuelvas a llamar al comando adjuntar con parámetros [ disco: ]camino lista existente de carpetas adjuntas al mando adjuntar será reemplazado por uno nuevo.

  • Usando un parámetro dir

    Al usar el comando dir para enumerar archivos y subdirectorios de un directorio, no se muestran los nombres de archivo de las carpetas adjuntas.

  • Resolución de conflictos de nombres de archivos

    Si los nombres de los archivos en las carpetas actual y adjunta son los mismos, los archivos de la carpeta actual se abren para que los programas funcionen.

  • Mando adjuntar y creando nuevos archivos

    Si un archivo está abierto en una carpeta adjunta, el trabajo con él se lleva a cabo de la misma manera que con los archivos de la carpeta actual. Si guarda un archivo creando un archivo con el mismo nombre, el nuevo archivo se guarda en la carpeta actual, no en la carpeta adjunta. Mando adjuntar se utiliza cuando se trabaja con archivos de datos que no cambian o cambian sin crear nuevas copias. Por ejemplo, cuando se trabaja con bases de datos, normalmente no se crean nuevas copias de archivos. Los editores y procesadores de texto generalmente guardan archivos haciendo nuevas copias. Para evitar un trabajo incorrecto, no utilice el comando adjuntar con tales programas.

  • Usando un parámetro / x: encendido con el equipo sendero

    Si el parámetro está configurado / x: encendido, los programas ubicados en carpetas adjuntas pueden iniciarse simplemente ingresando el nombre del programa en la línea de comando. Por lo general, el comando sendero le permite especificar carpetas que contienen programas, pero no necesita usar el comando para especificar carpetas adjuntas que contienen programas sendero... El subsistema MS-DOS encontrará este programa usando la lista de directorios adjuntos. Esto se debe a que MS-DOS busca primero el archivo ejecutable del programa en el directorio actual y luego en los directorios especificados por el comando.

  • Reducción de parámetros / x: encendido antes de / X

    Es posible reducir el parámetro / x: encendido antes de / X... Para hacer esto, ingrese el parámetro / x: encendido la primera vez que se invoca el comando adjuntar después de iniciar el sistema. Entonces puedes cambiar entre / x: encendido y / x: apagado.

  • Usando un parámetro / e con el equipo colocar

    Usando el parámetro / e con el equipo colocar, puede mostrar una lista de carpetas adjuntas.

Ejemplos de

Para poder abrir archivos de datos en programas de las carpetas B: \ Letters y A: \ Reports desde la carpeta actual, ingrese:

añadir b: \ letras; a: \ informes

añadir b: \ letras; a: \ informes

Para preguntas, discusiones, comentarios, sugerencias, etc., puede utilizar sección del foro este sitio (se requiere registro).

  • Anuncio:

    Procedimiento Append (Var F: Text);

    Dónde:
    F es una variable de archivo de texto.

  • Descripción:

    Abre un archivo existente para continuar escribiendo en el archivo.

  • Notas:

    El parámetro F es una variable de archivo de texto que debe asociarse con el archivo externo mediante la llamada al procedimiento Assign.

    Agregar abre un archivo externo existente con el nombre especificado en la variable de archivo F. Si no existe un archivo externo con el nombre dado, se produce un error de E / S. Si F ya está abierto, se cierra y se vuelve a abrir. La posición actual del archivo se establece al final del archivo.

    Si el último bloque de 128 bytes del archivo contiene el carácter Ctrl + Z (carácter, con código 26), entonces la posición actual del archivo se establece para sobrescribir el primer Ctrl + Z encontrado en el bloque. Por lo tanto, se puede agregar texto a un archivo que termine con Ctrl + Z.

    Si se ha asignado F, un nombre vacío, como Asignar (F, ""), luego de agregar a Agregar, F se refiere a la salida estándar (número de descriptor = 1).

    Después de agregar a Append, F se convierte en un archivo de solo lectura y el puntero de posición del archivo se establece al final del archivo.

    En el modo (I-), la función IOResult devolverá cero si la operación fue exitosa; de lo contrario, devolverá un código de error distinto de cero.

  • Ejemplo:

    (Programa de muestra para el procedimiento Append)
    Utiliza WinCrt;
    Var F: Texto;
    Empezar
    Asignar (F, "TEST.TXT");
    Reescribir (F); (Crea un archivo nuevo)
    WriteLn (F, "Algún texto ;-)");

    Anexar (F); (Agregue datos al final del archivo)
    WriteLn (F, "¡Un poco más de texto!");
    Cerrar (F); (Cerrar el archivo)
    Fin.