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: