Ayudantes de cadenas en Delphi
El rótulo de una biblioteca de semillas se recorta, se cambia de mayúsculas, se busca y se reescribe.
program StringHelpers;
uses SysUtils;
var
Raw, Tidy: string;
Marker: Integer;
begin
Raw := ' Marigold / Row 4 ';
Tidy := Trim(Raw); // Trim drops leading and trailing spaces
WriteLn(Format('[%s] becomes [%s]', [Raw, Tidy]));
WriteLn(UpperCase(Tidy), ' or ', LowerCase(Tidy));
WriteLn(Format('length %d', [Length(Tidy)]));
Marker := Pos('/', Tidy); // Pos counts from 1, or 0 when missing
WriteLn(Format('slash at %d, seed is %s',
[Marker, Trim(Copy(Tidy, 1, Marker - 1))]));
WriteLn(StringReplace(Tidy, 'Row', 'Bed', [rfReplaceAll]));
end.
Cómo funciona
Trim(Raw)quita los espacios de relleno y entoncesLength(Tidy)reporta 16.UpperCaseyLowerCasedevuelven copias con las mayúsculas cambiadas, sin tocarTidy.Pos('/', Tidy)ubica el separador paraCopy, yStringReplacecambia Row por Bed.
Palabras clave y builtins usados aquí
CopyFormatIntegerLengthLowerCasePosStringReplaceTrimUpperCaseWriteLnbeginendprogramstringusesvar
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 557
- Tokens
- 135
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 108 segundos.
Paso 3 de 3 en Tipos y cadenas; paso 6 de 27 en Fundamentos del lenguaje.