Aprendizaje profundo System.SysUtils.pas

Aprendizaje profundo System.SysUtils.pas

 

1. La redacción y el contenido de la inicialización y finalización.

inicialización
  si ModuleIsCpp luego HexDisplayPrefix: = '0x';
  InitMonitorSupport;
{$ IFNDEF NEXTGEN}
  AddModuleUnloadProc (ModuleUnloaded);
{$ ENDIF! NEXTGEN}

{$ IF (DEFINED (MSWINDOWS) y DEFINED (NEXTGEN)) o DEFINED (POSIX)}
  SafeCallErrorProc: = @SafeCallError;
{$ ENDIF (MSWINDOWS y NEXTGEN) o POSIX}
{$ IFDEF LINUX}
  CheckLocale;
{$ ENDIF LINUX}

{$ IFDEF MSWINDOWS}
  InitPlatformIdLock : = TObject.Create;
  InitDriveSpaceLock : = TObject.Create;
  GetDiskFreeSpaceEx : = @GetDiskFreeSpaceExThunk;
  DefaultFallbackLanguages : = GetLocaleOverride ('');
  NTQueryObject: = nulo;
  InternalFormatSettingsLock : = TObject.Create;
{$ ENDIF MSWINDOWS}
  GetFormatSettings ; {La implementación de Win usa la identificación de la plataforma}
finalización
{$ IFDEF MSWINDOWS}
  InternalFormatSettingsLock. Libre ;
  InitDriveSpaceLock.Free;
  InitPlatformIdLock.Free;
{$ ENDIF MSWINDOWS}
{$ IFDEF POSIX}
  si libuuidHandle <> 0 entonces
    dlclose (lib uuid Handle);
{$ ENDIF}
{$ IFNDEF NEXTGEN}
  RemoveModuleUnloadProc (ModuleUnloaded);
  ClearHashTables;
{$ ENDIF! NEXTGEN}
  FreeTerminateProcs ;
  DoneMonitorSupport ;
  ClearFormatSettings ;
fin.

2 、

// Encuentra la longitud en bytes de la cadena Unicode:

función ByteLength (const S: string): Integer; en línea;

3 、

const
  netapi = 'netapi32.dll';

  NERR_Success = 0;

// Win32 obtiene el grupo de trabajo (WorkGroup) al que se ha unido la computadora actual:

function GetNetWkstaMajorMinor (var MajorVersion , MinorVersion: DWORD): Boolean; // Llame a lo siguiente para devolver:

función NetWkstaGetInfo100 (ServerName: LPWSTR; Nivel: DWORD; var BufPtr: LPWKSTA_INFO_100): Longint;

4. var  HexDisplayPrefix : string = '$'; // Variable de prefijo global predeterminada hexadecimal

 

5, { un tipo de byte de juego de caracteres de varios bytes del tipo de byte Set Character MultiByte ( MBCS )
        juegos de caracteres de un solo byte SBCS  }
  TMbcsByteType = (mbSingleByte, mbLeadByte, mbTrailByte);

función ByteType (const S: UnicodeString; Índice: Integer): TMbcsByteType ; sobrecarga;
 

6. Herramienta de reemplazo de cuerdas

tipo
  TReplaceFlags = conjunto de (rfReplaceAll, rfIgnoreCase);

función StringReplace (const Source, OldPattern, NewPattern: string;
  Flags: TReplaceFlags): string; sobrecarga;

7. Herramienta de empaquetado del separador de separadores de texto de cadena

{WrapText escaneará una cadena en busca de BreakChars e insertará el BreakStr en la
  última posición de BreakChar antes de MaxCol. No insertará una ruptura en una
  cadena entre comillas incrustada (se admiten tanto '' 'como' "')}

función WrapText (const Line, BreakStr: string; const BreakChars: TSysCharSet;
  MaxCol: Integer): string; sobrecarga;
función WrapText (const Line: string; MaxCol: Integer = 45): string; sobrecarga;


8. Herramienta de segmentación de caracteres de cadena

{LastDelimiter devuelve el índice de bytes en S del
  carácter completo del extremo derecho que coincide con cualquier carácter de Delimiters (excepto nulo (# 0)).
  S puede contener caracteres multibyte; Los delimitadores deben contener solo
  caracteres no nulos de un solo byte.
  Ejemplo: LastDelimiter ('\ .:', 'c: \ filename.ext') devuelve 12.}

función LastDelimiter (const Delimiters , S: string): Integer ; sobrecarga;

{FindDelimiter devuelve el índice en S del carácter que coincide con cualquiera de
  los caracteres en Delimitadores (excepto nulo (#)). StartIdx especifica el
  índice en S en el que comenzará la búsqueda de delimitadores. }

función FindDelimiter (const Delimiters , S: string; StartIdx: Integer = 1): Integer ;

{IsPathDelimiter devuelve True si el carácter en el byte S [Index]
  es un PathDelimiter ('\' o '/'), y no es un byte inicial o final de MBCS. }

función IsPathDelimiter (const S: string; Index: Integer): Boolean ; sobrecarga;

{IsDelimiter devuelve True si el carácter en el byte S [Index] coincide con cualquier
  carácter de la cadena Delimiters y el carácter no es un
  byte inicial o final de MBCS . S puede contener caracteres multibyte; Los delimitadores deben contener
  solo caracteres de un solo byte. }

función IsDelimiter (const Delimiters , S: string; Index: Integer): Boolean ; sobrecarga;
 

9 、 {多 字节 函数 Funciones MBCS :}
{ByteType indica qué tipo de byte existe en el byte del índice en S.
  Las configuraciones regionales occidentales siempre devuelven mbSingleByte. Las configuraciones regionales multibyte del Lejano Oriente
  también pueden devolver mbLeadByte, que indica que el byte es el primero en una
  secuencia de caracteres multibyte , y mbTrailByte, que indica que el byte es uno de
  una secuencia de bytes que sigue a un byte inicial. Uno o más bytes de
  seguimiento pueden seguir a un byte inicial, según la codificación del juego de caracteres local y la plataforma del sistema operativo.
  Se supone que los parámetros son válidos. }

{$ IFNDEF NEXTGEN}
función ByteType (const S: AnsiString; Índice: Integer): TMbcsByteType; sobrecarga; obsoleto 'Movido a la unidad AnsiStrings';
{$ ENDIF! NEXTGEN}
función ByteType (const S: UnicodeString; Index: Integer): TMbcsByteType; sobrecarga;

{StrByteType funciona igual que ByteType, pero en cadenas PChar terminadas en nulo}

{$ IFNDEF NEXTGEN}
función StrByteType (Str: PAnsiChar; Índice: Cardinal): TMbcsByteType; sobrecarga; obsoleto 'Movido a la unidad AnsiStrings';
{$ ENDIF! NEXTGEN}
función StrByteType (Str: PWideChar; Índice: Cardinal): TMbcsByteType; sobrecarga;

{ByteToCharLen devuelve la longitud de caracteres de una cadena MBCS, escaneando la
  cadena hasta MaxLen bytes. En juegos de caracteres multibyte, el número de
  caracteres en una cadena puede ser menor que el número de bytes. }

Función {$ IFNDEF NEXTGEN}
ByteToCharLen (const S: AnsiString; MaxLen: Integer): Integer; sobrecarga; en línea; obsoleto 'Use ElementToCharLen';
{$ ENDIF! NEXTGEN}
función ByteToCharLen (const S: UnicodeString; MaxLen: Integer): Integer; sobrecarga; en línea; obsoleto 'Use ElementToCharLen.';

{CharToByteLen devuelve la longitud en bytes de una cadena MBCS, escaneando la cadena
  en busca de caracteres MaxLen. }

{$ IFNDEF NEXTGEN}
función CharToByteLen (const S: AnsiString; MaxLen: Integer): Integer; sobrecarga; en línea; obsoleto 'Use CharToElementLen.';
{$ ENDIF! NEXTGEN}
función CharToByteLen (const S: UnicodeString; MaxLen: Integer): Integer; sobrecarga; en línea; obsoleto 'Use CharToElementLen.';

{ByteToCharIndex devuelve el índice de carácter basado en 1 del byte del índice en
  una cadena MBCS. Devuelve cero si el índice está fuera de rango:
  (Índice <= 0) o (Índice> Longitud (S))}

Función {$ IFNDEF NEXTGEN}
ByteToCharIndex (const S: AnsiString; Índice: Integer): Integer; sobrecarga; en línea; obsoleto 'Use ElementToCharIndex.';
{$ ENDIF! NEXTGEN}
función ByteToCharIndex (const S: UnicodeString; Índice: Integer): Integer ; sobrecarga; en línea; obsoleto 'Use ElementToCharIndex.';

{CharToByteIndex devuelve el índice de 1 byte basado en el carácter de índice
  en una cadena MBCS. Devuelve cero si el índice o el resultado están fuera de rango:
  (Índice <= 0) o (Índice> Longitud (S)) o (El resultado sería> Longitud (S))}

{$ IFNDEF NEXTGEN}
función CharToByteIndex (const S: AnsiString; Índice: Integer): Integer; sobrecarga; en línea; obsoleto 'Use CharToElementIndex.';
{$ ENDIF! NEXTGEN}
función CharToByteIndex (const S: UnicodeString; Índice: Integer): Integer ; sobrecarga; en línea; obsoleto 'Use CharToElementIndex.';
 

10.1 Línea de herramientas de construcción de cuerdas = 3926

// Registro y clase para Delphi Native Stringbuilder

escriba
  TCharArray = TArray <Char>;

escriba
  TCharSearch = registro
    ArrayPtr: PChar;
    MatchPtr: PChar;
  fin;

  TStringBuilder = clase

      Crear Agregar

      AppendFormat AppendLine Borrar Asegúrese de que la capacidad sea igual a Insertar 

      Quitar Reemplazar GetEnumerator Capacity  

      Caracteres [índice: Integer] Longitud MaxCapacity

10.2 Línea de asistente de tipo de datos básicos = 3926

  TCompareOption = (coLingIgnoreCase, coLingIgnoreDiacritic, coIgnoreCase,
    coIgnoreKanatype, coIgnoreNonSpace, coIgnoreSymbols, coIgnoreWidth,
    coLingCasing, coDigitAsNumbers, coStringSorting);
  TCompareOptions = conjunto de TCompareOption;
  {$ SCOPEDENUMS ON}
  TStringSplitOptions = (Ninguno, ExcludeEmpty, ExcludeLastEmpty);
  {$ SCOPEDENUMS DE DESCUENTO}

  TStringHelper = asistente de registro para     línea de cadena = 4030

  TSingleHelper = asistente de registro para una sola     línea = 4081

  public
    const
      Epsilon: Single = 1.4012984643248170709e-45;
      MaxValue: Único = 340282346638528859811704183484516925440.0;
      MinValue: Único = -340282346638528859811704183484516925440.0;
      PositiveInfinity: Single = 1.0 / 0.0;
      NegativeInfinity: Single = -1.0 / 0.0;
      NaN: simple = 0,0 / 0,0;

  TDoubleHelper = asistente de registro para Double line = 4245
  public
    const
      Epsilon: Double = 4.9406564584124654418e-324;
      MaxValue: Doble = 1.7976931348623157081e + 308;
      MinValue: Doble = -1,7976931348623157081e + 308;
      PositiveInfinity: Double = 1.0 / 0.0;
      NegativeInfinity: Double = -1.0 / 0.0;
      NaN: Doble = 0,0 / 0,0;

  TExtendedHelper = asistente de registro para la línea extendida = 4311
  public
    const
      Epsilon: Extended = {$ IFDEF EXTENDEDHAS10BYTES} 3.64519953188247460253e-4951 {$ ELSE} 4.9406564584124654418e-324 {$ ENDIF};
      MaxValue: Extendido = {$ IFDEF EXTENDEDHAS10BYTES} 1.18973149535723176505e + 4932 {$ ELSE} 1.7976931348623157081e + 308 {$ ENDIF};
      MinValue: Extendido = - {$ IFDEF EXTENDEDHAS10BYTES} 1.18973149535723176505e + 4932 {$ ELSE} 1.7976931348623157081e + 308 {$ ENDIF};
      PositiveInfinity: Extendido = 1.0 / 0.0;
      NegativeInfinity: Extendido = -1.0 / 0.0;
      NaN: Extendido = 0.0 / 0.0;

  TByteHelper = asistente de registro para Byte line = 4375
  public
    const
      MaxValue = 255;
      MinValue = 0;

    ToString ToBoolean ToHexString ToHexString (const MinDigits: Integer) ToDouble ToExtended Size 

    ToString (valor const: Byte) Parse (const S: string): Byte TryParse (const S: string; valor de salida: Byte): Boolean

  TShortIntHelper = asistente de registro para la línea ShortInt = 4395
  public
    const
      MaxValue = 127;
      MinValue = -128;

  TWordHelper = asistente de registro para Word line = 4415
  public
    const
      MaxValue = 65535;
      MinValue = 0;

  TSmallIntHelper = asistente de registro para la  línea SmallInt = 4435
  public
    const
      MaxValue = 32767;
      MinValue = -32768;

  TCardinalHelper = asistente de registro para Cardinal {también para el tipo LongWord}  line = 4455
  public
    const
      MaxValue = 4294967295;
      MinValue = 0;

    ToHexString (const MinDigits: Integer): cadena ToHexString ......

  TIntegerHelper = asistente de registro para Integer {también para el tipo LongInt}   línea = 4475
  public
    const
      MaxValue = 2147483647;
      MinValue = -2147483648;

  TUInt64Helper = asistente de registro para la línea UInt64 = 4495
  public
    const
      MaxValue = 18446744073709551615;
      MinValue = 0;

  TInt64Helper = asistente de registro para la línea Int64 = 4515
  public
    const
      MaxValue = 9223372036854775807;
      MinValue = -9223372036854775808;

  TNativeUIntHelper = asistente de registro para NativeUInt línea = 4535     const
  público {$ IFDEF CPU64BITS}       MaxValue = 18446744073709551615; {$ ELSE! CPU64BITS}       MaxValue = 4294967295; {$ ENDIF CPU64BITS}       MinValue = 0;






  TNativeIntHelper = asistente de registro para NativeInt line = 4559
  public
    const
{$ IFDEF CPU64BITS}
      MaxValue = 9223372036854775807;
      MinValue = -9223372036854775808;
{$ ELSE! CPU64BITS}
      MaxValue = 2147483647;
      MinValue = -2147483648;
{$ ENDIF CPU64BITS}

  TBooleanHelper = asistente de registro para línea booleana = 4588     función
  pública
ToInteger: Integer; en línea;
    función ToString (UseBoolStrs: TUseBoolStrs = TUseBoolStrs.False): cadena; sobrecarga; en línea;

    función de clase Tamaño: Entero; en línea; estático;
    función de clase ToString (valor constante: Boolean; UseBoolStrs: TUseBoolStrs = TUseBoolStrs.False): cadena ; sobrecarga; en línea; estático;
    función de clase Parse (const S: string): Boolean ; en línea; estático;
    función de clase TryToParse (const S: string; out Value: Boolean): Boolean ; en línea; estático;

  TByteBoolHelper = asistente de registro para ByteBool line = 4599     función
  pública
ToInteger: Integer; en línea;
    función ToString: cadena; sobrecarga; en línea;

    función de clase Tamaño: Entero; en línea; estático;
    función de clase ToString (valor constante: booleano): cadena; sobrecarga; en línea; estático;
    función de clase Parse (const S: string): Boolean; en línea; estático;
    función de clase TryToParse (const S: string; out Value: Boolean): Boolean; en línea; estático;
  fin;

  TWordBoolHelper = asistente de registro para WordBool línea = 4610
  público

  TLongBoolHelper = asistente de registro para la línea LongBool = 4621
  público

11. Colección de comandos de control:

procedimiento Sleep (milisegundos: Cardinal); {$ IFDEF MSWINDOWS} stdcall; {$ ENDIF}
{$ IFDEF MSWINDOWS}
(* $ EXTERNALSYM Sleep *)
{$ ENDIF}  //: pausa de sincronización durante N milisegundos

función GetModuleName (Módulo: HMODULE): cadena;

function ExceptionErrorMessage (ExceptObject: TObject; ExceptAddr: Pointer;
  Buffer: PChar; Size: Integer): Integer; //: devuelve el número de excepción

procedimiento ShowException (ExceptObject: TObject; ExceptAddr: Pointer); //: ¡Lanza un mensaje de excepción!

procedimiento Abort//: Gracias por interrumpir la ejecución de esta línea

procedimiento OutOfMemoryError ;

procedimiento Beep ; inline;  //: ¡Da un aviso de sonido Beep!

12. Variables globales (con valores predeterminados):

{Cadena vacía y puntero de cadena nula. Estas constantes se proporcionan solo para
  compatibilidad con versiones anteriores. }

  EmptyStr : string = ''; // Cadena vacía
{$ IFNDEF NEXTGEN}
  NullStr: PString = @EmptyStr;

 EmptyWideStr : WideString = ''; // Cadena vacía
  NullWideStr: PWideString = @EmptyWideStr;

  EmptyAnsiStr : AnsiString = ''; // Cadena vacía
  NullAnsiStr: PAnsiString = @EmptyAnsiStr;
{$ ENDIF! NEXTGEN }

 

Continuará, actualización continua ...

 

 

Referencias de traducción de otros blogs para esta unidad:

1 、     https://blog.csdn.net/broker_chengchaoji/article/details/1540853?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.channel_param&depth_1-utm_source=distribute.logpc_relevant.none-task OPENSEARCH-1.channel_param

 

Supongo que te gusta

Origin blog.csdn.net/pulledup/article/details/104576831
Recomendado
Clasificación