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 destra
Metodi, funzioni e procedure per eliminare gli spazi di coda di una stringa (trailing blanks)
Linguaggio: PASCAL
Parametri : s = stringa Ritorna : La stringa senza spazi in coda (o a destra)
FUNCTION RTrim(s:AnyString): String; VAR L:BYTE; BEGIN L:=Length(s); while ((L > 0) and (s[L]=' ')) do begin Delete(s,L,1); L:=Length(s); end; RTrim:=s; END;
PROCEDURE RTrim(VAR s:AnyString); VAR L:BYTE; BEGIN L:=Length(s); WHILE ((L > 0) AND (s[L]=' ')) DO BEGIN Delete(s,L,1); L:=Length(s); END; END;
Linguaggio: C#
Parametri : s = stringa Ritorna : La stringa senza spazi di coda : Commenti : In C# (implementazione Microsoft dotNet : Framework (c) ) : esiste gia' un metodo della classe System.String : che opera la eliminazione dei trailing blanks : da una stringa. : Es.: : string s = " pluto"; : s = s.TrimEnd(); // s = "pluto". :----------------- : Anche per TrimEnd esiste una overload che : permette di scegliere : i caratteri da eliminare (oltre (invece) agli spazi) : Vuole come parametro un char[] (array di caratteri), : che sono appunto i caratteri da eliminare in coda alla : stringa. : Es.: Volendo eliminare dalla coda della stringa : i caratteri numerici 1,2,3 : : : string s = "PLUTO12"; : s = s.TrimEnd( new char[] {'1','2','3'} ); : // s="PLUTO". :---------------- : : Segue comunque una implementazione di rightTrim() in C#
public string rightTrim(string s) { // cerco (da destra) il primo carattere non blank int i = s.Length - 1; while (i >= 0 && s[i] == ' ') i--;
// se siamo a -1 (prima del primo carattere) // la stringa e' composta solo da blanks // o vuota (s.Length -1 = -1) if (i==-1) { return (""); // erano tutti blanks o s era vuota } else { return (s.Substring(0,i+1)); // ritorno i primi i+1 (i parte da 0 !!) // caratteri della stringa. }
}
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 Rtrim(VAR S:String); ; Strimr EQU DWORD PTR [BP+6] ; Rtrim PROC FAR ; PUSH BP MOV BP,SP PUSH DS LDS SI,Strimr CLD LODSB MOV CL,AL ; Lenght -> AL e in CX XOR CH,CH ; JCXZ VIA ; se 0 via LES DI,Strimr ; ES:DI --> byte 0 ADD DI,CX ; ES:DI --> ultimo byte STD ; va all'indietro MOV AL,' ' REPE SCASB ; indietro finche' blank JE OUTA ; tutti blank cx=0 esce INC CL ; inc cl ; OUTA: MOV AL,CL ; passa lenght in al LES DI,Strimr ; es:di --> bYTE[0] STOSB ; LEN IN BYTE[0] VIA: POP DS MOV SP,BP POP BP RET 4 Rtrim ENDP
N.B. Borland, DotNet, Microsoft sono marchi registrati ed appartengono ai leggittimi proprietari.
Metti la scheda negli appuntiVisualizza appuntiAzzera appunti