Albert Einstein: ... la nostra conoscenza, se paragonata alla realta' e' primitiva e infantile. Eppure e' il bene piu' grande che possediamo.
... all our science, measured against reality, is primitive and childlike-and yet it is the most precious thing we have.
Informatica : Code snippets (Strings)
Elimina spazi a sinistra
Procedure, funzioni e metodi per eliminare gli spazi in testa a una stringa (leading blanks)
Linguaggio: PASCAL
Parametri : s = stringa Ritorna : La stringa senza spazi a sinistra
function LeftTrim(s: String):String; begin while ((Length(s) > 0) and (s[1]=' ')) do Delete(s,1,1); LeftTrim:=s; end;
procedure LeftTrim(VAR s: String); begin while ((Length(s) > 0) and (s[1]=' ')) do Delete(s,1,1); end;
Linguaggio: C#
Parametri : s = stringa Ritorna : La stringa senza spazi a sinistra : Commenti : In C# (implementazione Microsoft dotNet : Framework (c)) : esiste gia' un metodo della classe System.String : che opera la eliminazione : degli spazi in testa ad una stringa. : Es.: : string s = " pippo"; : s = s.TrimStart(); // s = "pippo". :----------------- : Esiste una overload che permette di definire : i caratteri da eliminare (invece (oltre) agli spazi) : Vuole come parametro un char[] (array di caratteri), : che sono appunto i caratteri da eliminare dall'inizio : della stringa. : Es.: Volendo ripulire la parte sinistra della stringa : dai caratteri numerici 0,1,2 : : : string s = "02PLUTO"; : s = s.TrimStart( new char[] {'0','1','2'} ); : // s="PLUTO". :---------------- : : Segue comunque una implementazione di leftTrim() in C#
public string leftTrim(string s) {
// cerco il primo carattere non blank int i = 0; while (i<s.Length && s[i]==' ') i++;
// o siamo oltre la fine o il primo non_blank // si trova in posizione i if (i == s.Length) { return (""); // erano tutti blanks } else { return (s.Substring(i)); // ritorno il contenuto della s // a partire dal carattere i-esimo }
}
Linguaggio: Assembler 80286
Parametri : s = stringa Ritorna : La stringa senza spazi di testa (Leading) : Commenti : Questa versione assembler, e' scritta con le convenzioni : usate nell'object pascal di Borland (c), per : interfacciare codice Pascal con codice Assembler. : N.B. In piu' presuppone che la stringa sia SHORTSTRING : (max 255) : che prevede cioe' nel primo byte la lunghezza corrente : della stringa stessa.
; PROCEDURE Ltrim(VAR S:String); ; Striml EQU DWORD PTR [BP+6] ; Ltrim PROC FAR ; PUSH BP MOV BP,SP PUSH DS LDS SI,Striml CLD LODSB ; Carico in cx la lunghezza MOV CL,AL XOR CH,CH JCXZ VIA2 ; Vuota esce.... ; ; PUSH DS POP ES ; ES:DI -> stringa MOV DI,SI ; MOV AL,' ' ; CERCO NON BLANK ; ; CLD REPE SCASB JE VIA20 ; TUTTI BLANKS PUSH ES POP DS MOV SI,DI INC CL ; DEC SI VIA20: LES DI,Striml ; Carico destinazione MOV AL,CL STOSB ; Scarico lunghezza REP MOVSB ; VIA2: POP DS MOV SP,BP POP BP RET 4 Ltrim ENDP
N.B. Borland, DotNet, Microsoft sono marchi registrati ed appartengono ai leggittimi proprietari.
Metti la scheda negli appuntiVisualizza appuntiAzzera appunti