Lez. 7 (11/12) - PBElementi di Programmazione1 Lezione 7 Tipi String e Date.

Slides:



Advertisements
Presentazioni simili
Lez. 12 (10/11) - PBElementi di Programmazione1 Lezione 12 Esercizi.
Advertisements

Introduzione al linguaggio C++
Informatica 22/03/2012.
SQL applicato a SQL Server
Lez. 6 (10/11) - PBElementi di Programmazione1 Lezione 6 Parametri Facoltativi Matrici Matrici di parametri.
Lez. 8 (10/11) - PBElementi di Programmazione1 Lezione 8 Date Valutazione di espressioni File di testo sequenziali.
Lez. 8 (11/12) - PBElementi di Programmazione1 Lezione 8 Date Valutazione di espressioni File di testo sequenziali.
Lez. 11 (11/12) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez. 7 (10/11) - PBElementi di Programmazione1 Lezione 7 Matrici di Celle Tipi String e Date.
Lez 4 (11/12)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Lez. 10 (10/11) - PBElementi di Programmazione1 Lezione 10 Funzioni e Moduli Macro Analisi del flusso Esercizi.
Lez 4 (10/11)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Elementi di Programmazione
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
Oggetti Form e Controlli Registratore di Macro
EP 11/12 - PBLezione 31 Elementi di Programmazione Tipi di Dati e Conversioni Istruzioni di controllo del flusso.
Lez. 5 (10/11 - PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
Lez. 5 (11/12- PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
Lez. 9 (10/11) - PBElementi di Programmazione1 Lezione 9 Oggetti Moduli e Controlli Registratore di Macro.
Lez. 11 (10/11) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez. 6 (11/12) - PBElementi di Programmazione1 Lezione 6 Matrici Matrici di parametri.
Lez 4 (10/11)Elementi di Programmazione1 Istruzioni per il controllo del Recupero lez.4.
Dipartimento di Matematica
EP 13/14Lezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati, Variabili, Espressioni.
Laboratorio Matematica e Informatica
Caratteri e stringhe di caratteri
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Il linguaggio Fortran 90: 5. Formato di I/O e Files
Introduzione alla programmazione lll
Funzioni di Libreria per le stringhe DICHIARAZIONI CONTENUTE NEL FILE: char *strcpy( char *dest, const char *sorg ); Copia sorg in dest, incluso il carattere.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Organizzazione del corso
OPERAZIONI CON STRINGHE Le operazioni più interessanti da fare, per ora, con le stringhe sono: determinare la lunghezza della stringa, cioè quanti caratteri.
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
I File.
Java base I: Sintassi e tipi di dati
Programmazione in Java Claudia Raibulet
Laboratorio di Linguaggi di Programmazione 2007/2008 Marco Antoniotti Giuseppe Vizzari.
Foglio elettronico Excel Livello avanzato
File ad accesso casuale o random
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Programmare in Visual Basic
Programmazione di Calcolatori
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
BIOINFO3 - Lezione 291 PATTERN MATCHING Imparato cosa sono e come si usano le espressioni regolari per individuare dei pattern, vediamo come si usano in.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Funzioni per il trattamento delle stringhe
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Lezione 3 Struttura lessicale del linguaggio
Lez. 10 (13/14)Elementi di Programmazione1 Lezione 10 Oggetti Moduli e Controlli.
Lz. 3 (13/14)Elementi di Programmazione1 Istruzioni (strutture) di controllo 1.
Lez. 5 (13/14)Elementi di Programmazione1 Lezione 5 Procedure.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Lez. 8 (13/14)Elementi di Programmazione1 Lezione 8 Tipi String e Date.
Il ciclo while.  Permette di ripetere un blocco di istruzioni fino a quando non si verifica un determinato evento  Il ciclo while può essere realizzato.
Introduzione a Javascript
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
Lez 4 (13/14)Elementi di Programmazione1 Strutture di controllo 2.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
VBScript © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto in italiano: © 2002 Prentice.
Lez. 12 (13/14)Elementi di Programmazione1 Lezione 12 Esercizi.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Lez. 11 (13/14)Elementi di Programmazione1 Lezione 11 Esercizi.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri.
Transcript della presentazione:

Lez. 7 (11/12) - PBElementi di Programmazione1 Lezione 7 Tipi String e Date

Lez. 7 (11/12) - PBElementi di Programmazione2 Tipo String (1) Una stringa è un insieme ordinato di caratteri In VB esistono –Stringhe di lunghezza fissa che possono contenere fino a 2 16 caratteri Si dichiarano con Dim nome As String * N –N indica la lunghezza massima della stringa, oltre questa dimensione la stringa è troncata –Non possono essere assegnate a variabili di tipo Variant –Stringhe di lunghezza variabile Si dichiarano con Dim nome As String

Lez. 7 (11/12) - PBElementi di Programmazione3 Tipo String (2) Sub usoString() Dim stFix As String * 5 Dim stVar As String stFix = "ciaociao" stVar = "ciaociao" MsgBox (stFix) MsgBox (stVar) End Sub

Lez. 7 (11/12) - PBElementi di Programmazione4 Tipo String (3) Per manipolare le stringhe esistono diverse funzioni: –Confrontare ( StrComp ) –Convertire ( StrConv, Format, LCase, UCase ) –Creare stringhe di caratteri ripetuti ( Space, String ) –Trovare la lunghezza di una stringa ( Len ) –Allineare una stringa ( LSet, RSet ) –Manipolare Stringhe ( InStr, Left, Mid, Right, Replace, LTrim, RTrim, Trim ) –Manipolare i valori ASCII e ANSI ( Asc, Chr )

Lez. 7 (11/12) - PBElementi di Programmazione5 Tipo String (4) StrComp (str1, str2, modo) –Confronta str1 con str2 come specificato da modo modo (facoltativo) può valere –vbUseCompareOption confronta secondo l'impostazione di Option Compare. »Option Compare valore definita a livello di modulo valore può essere Binary (default) o Text –vbBinaryCompare confronto binario. –vbTextCompare confronto di testo. –Restituisce - 1 str1 < str2 0 str1 = str2 1str1 > str2 Null se una delle due stringhe è Null

Lez. 7 (11/12) - PBElementi di Programmazione6 Tipo String (5) StrComp (str1, str2, modo) –Considerazioni particolari: Nella modalità vbTextCompare non si distingue fra maiuscolo e minuscolo. I caratteri accentati sono considerati diversi da quelli non accentati ed hanno una posizione diversa a seconda del tipo di accento!

Lez. 7 (11/12) - PBElementi di Programmazione7 StrComp Scrivere una subroutine che richiede allutente due stringhe e le compara prima in modo default (binario) e poi text, visualizzando in un messageBox se il risultato è lo stesso

Lez. 7 (11/12) - PBElementi di Programmazione8 StrComp Sub usoString() Dim stA As String Dim stB As String Dim resD As Integer Dim resT As Integer stA = InputBox("Prima stringa :") stB = InputBox("Seconda stringa :") resD = StrComp(stA, stB) MsgBox ("StrComp [" & stA & "] [" & stB & "] = " & resD) resT = StrComp(stA, stB, vbTextCompare) MsgBox ("StrComp Test [" & stA & "] [" & stB & "] = " & resT) If (resD = resT) Then MsgBox ("I due modi sono equivalenti") Else MsgBox ("I due modi NON sono equivalenti") End If End Sub

Lez. 7 (11/12) - PBElementi di Programmazione9 Tipo String (6) StrConv(stringa,conversione) Converte stringa secondo le impostazioni specificate in conversione (le opzioni di conversione possono essere sommate per ottenere più effetti) conversione può valere: vbUpperCase converte i caratteri in maiuscolo »Equivale alluso di UCase(stringa) vbLowerCase converte i caratteri in minuscolo »Equivale alluso di LCase(stringa) vbProperCase converte in maiuscolo il primo carattere di ogni parola

Lez. 7 (11/12) - PBElementi di Programmazione10 Tipo String (7) –Alcune funzioni permettono di scrivere stringhe con caratteri ripetuti: Space(numero) : restituisce una stringa con numero spazi String(numero,carattere) : restituisce una stringa con carattere ripetuto numero volte –Carattere può essere una costante o un numero che rappresenta la posizione del carattere nella tabella ASCII –Per conoscere la lunghezza di una stringa in caratteri si usa Len(stringa) –Len(nomeVariabile) in generale restituisce il numero di byte con cui è rappresentata la variabile

Lez. 7 (11/12) - PBElementi di Programmazione11 Tipo String (8) InStr(inizio,str1,str2,modo) Cerca in str1 le occorrenze di str2 a partire dalla posizione inizio (se non specificato inizia dal primo carattere) di str1 confrontando in base al valore di modo (facoltativo) –vbUseCompareOption / vbBinaryCompare / vbTextCompare Restituisce 0se non è trovata corrispondenza >0inizio della corrispondenza Nullse str1 o str2 valgono Null

Lez. 7 (11/12) - PBElementi di Programmazione12 Esercizio 1 Data una stringa X verificare quante volte compare in essa la stringa Y X |rosa bella rosetta bellina| Y |ros|

Lez. 7 (11/12) - PBElementi di Programmazione13 Soluzione Esercizio 1 Function contaVolte(s1 As String, s2 As String) _ As Integer Dim pos As Integer, lS2 As Integer lS2 = Len(s2) pos = 1 contaVolte = 0 While (InStr(pos, s1, s2) <> 0) contaVolte = contaVolte + 1 pos = InStr(pos, s1, s2) pos = pos + lS2 Wend End Function

Lez. 7 (11/12) - PBElementi di Programmazione14 Considerazioni Esercizio 1 Data una stringa X verificare quante volte compare in essa la stringa Y X |rosa bella rosetta bellina| Y |ros| pos contaVolte Instr(1,X,Y) => 1 1 -> pos = 4 InStr(4,X,Y) => > pos = 15 InStr(15,X,Y) => 0 2 -> exit

Lez. 7 (11/12) - PBElementi di Programmazione15 Left, Right, Mid –Le seguenti funzioni restituiscono porzioni della stringa argomento Left(stringa, N) –Restituisce i primi N Caratteri di stringa Right(stringa, N) –Restituisce gli ultimi N caratteri di stringa Mid(stringa, partenza, N) –Restituisce i primi N caratteri di stringa a partire dalla posizione partenza; se N è omesso restituisce la stringa a partire dalla posizione partenza

Lez. 7 (11/12) - PBElementi di Programmazione16 Like (1) Operatore Like risultato = stringa Like criterio stringa è confrontata con criterio Il valore in risultato è: –True se vi è corrispondenza con criterio –False se non vi è corrispondenza con criterio –Null se stringa o criterio valgono Null. Il confronto è fatto sulla base del valore di Option Compare –Binary (default) »fatto in base alla posizione del carattere nellalfabeto in uso –Text »Fatto in base al valore alfabetico dei caratteri (maiuscolo e minuscolo indifferente, ma i caratteri accentati seguono quelli non accentati)

Lez. 7 (11/12) - PBElementi di Programmazione17 Like (2) criterio può contenere dei metacaratteri: ? Un carattere qualsiasi * Zero o più caratteri qualsiasi # una singola cifra [elencoCar] qualsiasi carattere in elencoCar [!elencoCar] qualsiasi carattere non in elencoCar –elencoCar contiene un elenco di caratteri fra cui (non) trovare corrispondenza. Può contenere »Intervalli di caratteri consecutivi (il primo e lultimo elemento della sequenza son separati dal segno - ) »Il carattere – deve essere il primo o lultimo dellelenco se non utilizzato in un intervallo (per evitare confusioni) »Il carattere ! Se non è in prima posizione mantiene il suo significato »Il metacaratteri [ ? * # debbono essere racchiusi fra parentesi quadre la parentesi quadra chiusa ] NON può essere usata in un elenco di caratteri

Lez. 7 (11/12) - PBElementi di Programmazione18 Esempio Sub prova() Dim s1 As String, s2 As String, dove As Integer 'criterio tre caratteri qualunque ma non a b c (minuscoli) s1 = "*AK" Range("C1") = s1 Like "[!a-c][!a-c][!a-c]" 'criterio: tutte le stringhe che iniaziano con ca s1 = "cosa di montagna" Range("C2") = s1 Like "ca*" 'criterio: tutte le stringhe che iniziano con ca quindi ' hanno un carattere qls e quindi una a s1 = "casa" Range("C2") = s1 Like "ca?a*" End Sub

Lez. 7 (11/12) - PBElementi di Programmazione19 Esempio Sub prova() Dim s1 As String s1 = Range("A1") Range("C1") = s1 Like Range("B1") End Sub

Lez. 7 (11/12) - PBElementi di Programmazione20 Replace –La funzione Replace() permette di sostituire parti di una stringa con unaltra restituisce la stringa con le sostituzioni Replace(expr, trova, sost, da, tot, modo) expr indica dove cercare trova indica cosa cercare sost indica con cosa sostituire da posizione da cui partire (se omessa 1) tot quante sostituzione fare (se omessa -1 tutte) modo tipo di confronto vbUseCompareOption usa valore di Option vbBinaryCompare confronto binario vbTextCompare confronto testuale

Lez. 7 (11/12) - PBElementi di Programmazione21 Esempio Sub rimpiazza() Range("D3") = Replace("rosa rossa rosa gialla", _ "os", "ciliegia", 1, 2) End Sub rosa rossa rosa gialla diventa rciliegiaa rciliegiasa rosa gialla

Lez. 7 (11/12) - PBElementi di Programmazione22 Trim –Le seguenti funzioni eliminano spazi LTrim(stringa) –Elimina gli spazi iniziali di stringa RTrim(stringa) –Elimina gli spazi finali di stringa Trim(stringa) –Elimina gli spazi iniziali e finali di stringa

Lez. 7 (11/12) - PBElementi di Programmazione23 Asc & Chr –La funzione Asc(stringa) restituisce il codice del primo carattere di stringa (valore intero) Chr(intero) restituisce la stringa che contiene il carattere corrispondente al valore di intero

Lez. 7 (11/12) - PBElementi di Programmazione24 Esempio Option Compare Binary Function myStrComp(s1 As String, _ s2 As String) As Integer Dim i As Integer, lun As Integer If Len(s1) > Len(s2) Then lun = Len(s2) Else lun = Len(s1) End If i = 1 While i <= lun If Asc(Mid(s1, i, i)) <> _ Asc(Mid(s2, i, i)) Then If (Asc(Mid(s1, i, i)) < _ Asc(Mid(s2, i, i))) Then myStrComp = -1 Else myStrComp = 1 End If i = lun + 2 End If i = i + 1 Wend If (i = lun + 1) Then 'le due stringhe sono diverse myStrComp = 0 End If End Function Sub prova() Dim s1 As String, s2 As String s1 = "Rosa" s2 = "Cosa" Range("A1") = StrComp(s1, s2) Range("A2") = myStrComp(s1, s2) End Sub

Lez. 7 (11/12) - PBElementi di Programmazione25 Tipo Date (1) Serve per gestire le date che vengono memorizzate come numeri decimali di 8 byte –Le date fra 01/01/100 e 30/12/1899 sono numeri negativi 31/12/1899 e 31/12/9999 sono numeri positivi 0 rappresenta il giorno Se si usano i numeri decimali la parte decimale rappresenta lora –Possono essere dei valori letterali compresi fra # che somigliano ad una data #15 Apr 2009# #12/5/2007#

Lez. 7 (11/12) - PBElementi di Programmazione26 Tipo Date (2) Le principali funzioni di manipolazione: –Dai valori orologio di sistema: Date() : restituisce gg/mm/aaaa Time() : restituisce hh:mm:ss Now() : gg/mm/aaa hh:mm:ss –Restituire date: DateSerial(aaaa,mm,gg) DateValue(stringaConData) –Restituire orari: TimeSerial(hh,mm,ss) TimeValue(stringaConOrario)

Lez. 7 (11/12) - PBElementi di Programmazione27 Tipo Date (3) DatePart(interval, data, primoGset,primaSanno) Restituisce una parte delle informazioni contenute in data interval indica quale parte interessa (valore fra ): –yyyy Anno q Trimestre m Mese –y Giorno dellanno d Giorno –w Giorno della settimana ww Settimana –h Ora n Minuti s Secondi primoGset indica quale è il primo giorno della settimana –vbUseSystem impostazione API vbSunday Do (predefinita) – vbMonday Lu vbTuesday Ma vbWednesday Me – vbThursday Gi vbFriday Ve vbSaturday Sa primaSanno indica da quando si iniziano a contare le settimane di un anno –vbUseSystem impostazione API – vbFirstJan1 settimana 1 gennaio (predefinita) –vbFirstFourDays prima settimana di almeno quattro giorni –vbFirstFullWeek Inizia con la prima settimana completa dell'anno.

Lez. 7 (11/12) - PBElementi di Programmazione28 Esercizio Le celle da A1 a F1 contengono delle date. Scrive il codice necessario per –Verificare se la cella contiene effettivamente una data –Scrivere nella riga sottostante il giorno della settimana o nulla se non ha la forma di una data

Lez. 7 (11/12) - PBElementi di Programmazione29 Esercizio Sub giornoSettimana() Dim gS(7) As String Dim el As Variant, i As Integer, g As Integer gS(1) = "lunedì" gS(2) = "martedì" gS(3) = "mercoledì" gS(4) = "giovedì" gS(5) = "venerdì" gS(6) = "sabato" gS(7) = "domenica" i = 1 For Each el In Range("A1:F1") If IsDate(el.Value) Then g = DatePart("w", el.Value, vbMonday) Cells(2, i).Value = gS(g) End If i = i + 1 Next End Sub

Lez. 7 (11/12) - PBElementi di Programmazione30 Tipo Date (4) Alle date si possono aggiungere dei giorni con loperatore + Più corretto è usare le funzioni –DateAdd(interval, periodi, data) Somma il numero periodi a data aumentando del valore di interval specificato –DateDiff(interval, data1, data2,primoGset,primaSanno) Restituisce i periodi trascorsi fra due date specificate