Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Array
sabato 23 agosto 2003 - 16.49
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
francescoteresa
Profilo
| Newbie
39
messaggi | Data Invio:
sab 23 ago 2003 - 16:49
Ciao ragazzi,
io ho il seguente array:
#fr 2 33 4 55 #66 77 88 99 10 #112 113 114 115 116 #117 118 119 20 223 ####
Dovrei togliere tutti gli ultimi cancelletti avendo quindi il seguente array:
#fr 2 33 4 55 #66 77 88 99 10 #112 113 114 115 116 #117 118 119 20 223
Come posso fare?
P.S. Ovviamente l'array cambia sempre ossia non è sempre della stessa grandezezza.
PS.2 Io programmo in visual basic.
Grazie mille a tutti,
Francesco
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 25 ago 2003 - 11:34
Ciao Francesco,
immagino che con Array tu ti riferisca a una stringa, sbaglio?
In questo caso puoi ciclare su questa stringa alla ricerca della posizione dell'ultimo spazio.
Una volta che l'hai trovato puoi semplicemente fare un SubString(0,posizione_ultimo_spazio).
Questa istruzione ti restituisce diciamo la prima parte della stringa tralasciando gli ultimi.
Facendo un esempio:
Dim a as String
a="#14 15 16 ####"
L'ultimo spazio è in posizione 9 partendo a contare da zero.
Per ottenere la stringa pulita:
a=a.SubString(0,9) e dovrebbe restituire:
"#14 15 16"
E' così?
Ciao
David De Giacomi
francescoteresa
Profilo
| Newbie
39
messaggi | Data Invio:
lun 25 ago 2003 - 19:54
Ciao David e grazie per avermi risposto.
Purtroppo non è come dici.
Questo:
#fr 2 33 4 55 #66 77 88 99 10 #112 113 114 115 116 #117 118 119 20 223 ####
non è una lista ma è semplicemente la stampa di un array.
E' da aggiungere che il numero dei cancelletti finali non sono sempre 4 ma ne possono eseere 1,2,...10 ecc oppure nessuno.
Mi puoi aiutare?
Grazie
francescoteresa
Profilo
| Newbie
39
messaggi | Data Invio:
lun 25 ago 2003 - 20:00
Ciao David,
guardando bene il tuo ultimo thread, io all'inizio ce lo una stringa ma è un po leggermente diversa ossia cio sono delle virgole:
Dim a as String
a="#,14,15,16,#,#,#,#"
Quindi se in questa stringa riesco a togliere i cancelletti finali è ottimo.
Grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 26 ago 2003 - 10:58
Ciao Francesco,
beh la procedura anche nel caso della stringa con virgole è simile.
Certo facendo un parsing della stringa manualmente come ti ho consigliato è un po' complicato.
Sicuramente la cosa migliore è usare le Regular Expressions, ma io in materia proprio non sono preparato :)
Con le Regular Expression puoi cercare blocchi di testo particolari per esempio una sequenza di caratteri (,#) variabile e che sia inoltre a fine riga.
In questo modo puoi rapidamente operare sulla stringa ed eliminare o aggiungere o sostituire ciò che vuoi, certo ci vuole un po' di esperienza con le RegEx.
.NET finalmente le ha introdotte ora bisogna impararle :)
Per farti capire c'è un articolo che permette di renderizzare sottoforma di hyperlink gli indirizzi Web. Esempio all'interno di una pagina web, invece che stamparli come semplice testo con le RegEx puoi trasformare tutti i link in modo che venga sostituiti con i tag <A HREF>.
http://www.dotnethell.it/articles/article.aspx?ArticleID=81
Ciao
David
francescoteresa
Profilo
| Newbie
39
messaggi | Data Invio:
mar 26 ago 2003 - 19:31
Ciao David,
visto che la cosa sta diventando molto complicata,
mi dici come faccio ad eliminare un elemento in un array?
Esempio io ho questo array:
francesco, pasquale, teresa
Come faccio ad eliminare pasqule?
Se mi dici questa riesco a risolvere il mio problema.
Grazie mille,
francesco
nemo75
Profilo
| Newbie
9
messaggi | Data Invio:
mer 27 ago 2003 - 10:34
Il primo problema (troncare una stringa) ti è stato già risolto, mentre l'eliminazione di una sottostringa da una stringa è differente.
dovresti prima spiegare qual è il criterio che usi x l'eliminazione (es. il secondo nome di una lista,ecc.)
non conosco il tuo problema, ma (se conosci già il numero di elementi) sei sicuro che non ti convenga usare un array di stringhe?
ciao
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 27 ago 2003 - 14:38
La cosa non è complicata, si tratta di sapere come funziona le Regular Expressions :)
Prova a postare un pezzo di codice, per lo meno dove dichiari l'array o la stringa, e mettici pure un esempio concreto, così capiamo meglio.
Ciao
David
francescoteresa
Profilo
| Newbie
39
messaggi | Data Invio:
mer 27 ago 2003 - 23:10
Ciao amici,
la cosa non è molto complicata, forse sono io che non mi sono spegato bene.
Io ho questo array:
Dim MyArr() as String
MyArr= (#,fr,2,33,4,55,#,66,77,88,99,10,#,112,113,114,115,116,#,117,118,119,20,223,#,#,#,#)
Questo MyArr deve diventare così:
(#,fr,2,33,4,55,#,66,77,88,99,10,#,112,113,114,115,116,#,117,118,119,20,223)
ossia senza i cancelletti finali.
Allora io cosa ho pensato:
con questo: Ubound(MyArr) so il numero esatto di tutti gli elementi del mio array,
poi faccio così:
for i = 0 to Ubound(MyArr)
ii = to Ubound(MyArr) - i
ii è una variabile che praticamente conta all'inverso, quindi inizia a legger l'array dalla fine e di conseguenza:
if MyArr(ii)="#" then
cancellami l'elemento MyArr(ii)
else
Response.write(MyArr)
end if
next
se l'elemento dell'array è un cancelletto, mi deve cancellare l'elemento.
Avete capito?
A me serve il codice che cancella un elemento in un array.
Un esempio + semplice è questo:
voglio cancellero l'elemento n. 3 dell'array MyArr. Come faccio?
Grazi mille
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 29 ago 2003 - 10:05
Beh allora, vediamo un po'.
Il tuo metodo di andare all'indietro potrebbe andare bene, perchè puoi eliminare virgole e # fino a quando trovi qualcosa diverso da virgola o # appunto, cioè quando c'è un numero e quindi ti fermi.
Se tu parli di eliminare il # o la , purtroppo in un array semplice non mi pare ci siano metodi per rimuovere gli elementi, puoi assegnare la posizione a vuoto o al carattere \0.
Io ti consigliere di usare un'altra struttura dati che è l'ArrayList che ha diversi metodi fra cui Add e Remove o RemoveAt. In pratica è una specie di lista linkata.
Tu dicevi, come faccio a rimuovere il carattere in posizione 3?
E' sufficiente che usi il metodo .RemoveAt(2) (perchè partiamo da zero) e quindi quell'elemento scompare e tutti gli altri vengono spostati indietro di uno, cioè diciamo la lista viene ricompattata senza un buco come potrebbe succede con l'Array classico. L'ArrayList fra l'altro accetta ogni tipo di dati, int, string, ecc. quindi ci puoi giocare bene!
Ciao
David
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !