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)
I primi n caratteri di una stringa
I frammenti di codice (snippets) listati sotto, implementano, nei differenti linguaggi usati, una funzione che restituisce i primi n caratteri di una stringa. Alla funzione diamo il nome di 'Left'.
Linguaggio: PASCAL
Parametri : St = stringa : quanti = quanti caratteri Ritorna : Una stringa composta dai primi 'qv' caratteri di 'St'
procedure Left(VAR St:String; quanti:integer); Begin if length(St) <= quanti then exit; St:=Copy(St,1,quanti); end;
function Left(St:String; quanti:integer):String Begin if length(St) <= quanti then begin Left:=St; exit; end; Left:=Copy(St,1,quanti); end;
Linguaggio: Assembler 80286
Parametri : S = stringa : Quanti = quanti caratteri Ritorna : Una stringa composta dai primi 'Quanti' caratteri di 'S' : 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 SHORT; max 255 caratteri : e nel primo byte : la lunghezza corrente : della stringa stessa. :
; function left(S:String; Quanti:Integer):String; ; LeftRes EQU DWORD PTR [BP+12] LeftS EQU DWORD PTR [BP+8] LeftQ EQU BYTE PTR [BP+6] ; Left PROC FAR ; PUSH BP MOV BP,SP PUSH DS LDS SI,LeftS LES DI,LeftRes CLD LODSB ; carico len src OR AL,AL JNZ LEOK STOSB JMP FINE4 LEOK: CMP AL,LeftQ ; quanti ne vuole ? JA LEFTA ; meno OK passali MOV CL,AL ; di piu' o uguale XOR CH,CH ; copio tutto da [0] a len INC CX ; +1 copia anche il primo DEC SI REP MOVSB JMP FINE4 LEFTA: MOV AL,LeftQ MOV CL,AL XOR CH,CH STOSB OR AL,AL JZ FINE4 REP MOVSB FINE4: POP DS MOV SP,BP POP BP RET 6 ; Left ENDP
Linguaggio: C#
Parametri : S = stringa : qv = quanti caratteri Ritorna : Una stringa composta dai primi 'qv' caratteri di 's'
public string Left(string s, int qv) { if (qv > s.Length) { return (s); } else { return (s.Substring(0, qv)); } }
N.B. Borland e Delphi7, DotNet e Microsoft sono marchi registrati ed appartengono ai leggittimi proprietari.
Metti la scheda negli appuntiVisualizza appuntiAzzera appunti