Skip to content

Librerie interne

NeoObjectPascal include cinque librerie pronte all'uso, impacchettate all'interno dell'interprete stesso. Coprono attività comuni di testo, matematica, date, file e collezioni. Carica una qualsiasi con il prefisso internal.:

npas
uses internal.string, internal.math, internal.datetime;

begin
    WriteLn(toUpperCase("neo"));
    WriteLn(factorial(5));
    WriteLn(getMonthName(7));
end.
Saída
 NEO 120 Julho 

Poiché vengono caricate dall'interno del JAR, sono sempre disponibili, indipendentemente dalla directory del progetto. Consulta Moduli e uses per il funzionamento di uses.

internal.string

Funzioni per ispezionare, formattare e trasformare le stringhe.

FunzioneDescrizione
isEmpty(s) / isNotEmpty(s)Verifica se la stringa è (o non è) vuota
strLength(s)Lunghezza della stringa
toUpperCase(s) / toLowerCase(s)Converte in maiuscolo / minuscolo
trim(s)Rimuove gli spazi alle estremità
repeat(s, count)Ripete la stringa count volte
join(sep, s1, s2)Unisce 2 stringhe con un separatore
join3(sep, s1, s2, s3) / join4(...)Unisce 3 o 4 stringhe
quote(s) / singleQuote(s)Racchiude tra virgolette doppie / singole
bracket(s) / parenthesize(s)Racchiude tra parentesi quadre / tonde
inStr(haystack, needle)Posizione della sottostringa (1-based; 0 se assente)
contains(haystack, needle)Se contiene la sottostringa
startsWith(s, prefix) / endsWith(s, suffix)Se inizia / termina con il segmento
subString(s, from, len)Estrae len caratteri a partire da from (1-based)
replaceStr(s, from, to)Sostituisce tutte le occorrenze di from con to
intToStr(n) / strToInt(s)Converte tra intero e stringa
npas
uses internal.string;

begin
    WriteLn(quote("NeoObjectPascal"));
    WriteLn(repeat("*", 3));
    WriteLn(contains("NeoObjectPascal", "Pascal"));
    WriteLn(join(" ", "João", "Silva"));
end.
Saída
 "NeoObjectPascal" *** true João Silva 

internal.math

Funzioni matematiche per gli interi.

FunzioneDescrizione
abs(x)Valore assoluto
max(a, b) / min(a, b)Maggiore / minore tra due valori
square(x) / cube(x)Quadrato / cubo
factorial(n)Fattoriale di n
fibonacci(n)N-esimo numero di Fibonacci
isEven(n) / isOdd(n)Se è pari / dispari
gcd(a, b) / lcm(a, b)Massimo comune divisore / minimo comune multiplo
sign(x)Segno del numero (-1, 0 o 1)
clamp(value, minVal, maxVal)Limita value all'intervallo [minVal, maxVal]
npas
uses internal.math;

begin
    WriteLn(abs(-15));
    WriteLn(factorial(5));
    WriteLn(gcd(24, 36));
    WriteLn(clamp(120, 0, 100));
end.
Saída
 15 120 12 100 

internal.datetime

Funzioni per ottenere, validare, formattare e calcolare date e orari.

CategoriaFunzioni
Data/ora correntegetCurrentYear, getCurrentMonth, getCurrentDay, getCurrentHour, getCurrentMinute, getCurrentSecond
FormattazioneformatDate(y, m, d), formatTime(h, m, s), getCurrentDate, getCurrentTime, getCurrentDateTime
ValidazioneisLeapYear(year), isValidDate(y, m, d), isValidTime(h, m, s)
CalcologetDaysInMonth(y, m), getAge(ano, mes, dia), addDays(...), addMonths(...), addYears(...)
NomigetMonthName, getMonthNameEn, getDayOfWeekName, getDayOfWeekNameEn
npas
uses internal.datetime;

begin
    WriteLn("Ano atual: ", getCurrentYear());
    WriteLn("2024 é bissexto? ", isLeapYear(2024));
    WriteLn("Dias em fevereiro/2024: ", getDaysInMonth(2024, 2));
    WriteLn("Nome do mês 10: ", getMonthName(10));
end.
Saída
 Ano atual: 2026 2024 é bissexto? true Dias em fevereiro/2024: 29 Nome do mês 10: Outubro 

internal.file

Funzioni per lavorare con percorsi e file.

CategoriaFunzioni
Componenti del percorsogetFileExtension, getFileName, getFileNameWithoutExtension, getParentDirectory, joinPath
NormalizzazionenormalizePath, isAbsolutePath, isRelativePath
Validazione del nomeisValidFilename, sanitizeFilename, createTempFilename
File systemfileExists, directoryExists, isFile, isDirectory, getFileSize
ClassificazioneisTextFile, isBinaryFile, formatFileSize
npas
uses internal.file;

begin
    WriteLn(getFileExtension("relatorio.pdf"));
    WriteLn(getFileName("/docs/notas.txt"));
    WriteLn(joinPath("docs", "notas.txt"));
    WriteLn(isTextFile("dados.csv"));
end.
Saída
 pdf notas.txt docs/notas.txt true 

internal.collections

Funzioni per manipolare array e liste.

CategoriaFunzioni
Di basecreateArray, arraySize, arrayIsEmpty, arrayFirst, arrayLast
RicercaarrayContains, arrayIndexOf
TrasformazionearrayReverse, arraySlice, arraySort, arraySortDesc, arrayUnique, arrayConcat
AggregazionearraySum, arrayMax, arrayMin, arrayJoin, arrayReduce
Ordine superiorearrayMap, arrayFilter, arrayRange
npas
uses internal.collections;

var lista: Object;

begin
    lista := createArray();
    WriteLn("Vazio? ", arrayIsEmpty(lista));
    WriteLn("Tamanho: ", arraySize(lista));
end.
Saída
 Vazio? true Tamanho: 0 

Array nativi

Nella maggior parte dei casi, gli array nativi del linguaggio ([10, 20, 30], indice a[0], for x in a do) sono già sufficienti. Vedi Array. La libreria internal.collections li completa con utility con nome.

Combinare le librerie

Nulla impedisce di caricare più librerie in una volta sola e combinarle liberamente:

npas
uses internal.string, internal.math;

begin
    WriteLn(quote(intToStr(square(8))));
end.
Saída
 "64" 

Di seguito, garantisci la qualità del tuo codice con i Test di unità.