Project75 Inserito: 23 luglio Segnala Share Inserito: 23 luglio Buongiorno ho una stringa del tipo ' S C-KT03486 ' , in pratica dovrei togliere gli spazi iniziali e finali della stringa e dovrei ottenere 'S C-KT03486', OVVIAMENTE devo togliere gli eventuali spazi iniziali e finali della stringa, ma quelli tra un carattere ed un'altro no. Ovviamente operazione eseguita con codice scl. Grazie mille a chi mi può aiutare. Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 23 luglio Segnala Share Inserita: 23 luglio Togliere spazi all'inizio: Utilizza l'istruzione che legge il primo carattere a sinistra (LEFT) e confronta se il carattere è uguale a spazio vuoto ' '. Se il confronto è valido, cancella il primo carattere (DELETE). Itera. Se il confronto non è più valido, significa che ha trovato il primo carattere non vuoto della stringa. Togliere spazi alla fine: Utilizza l'istruzione che ti dice quanto è attualmente lunga a stringa (LEN, da non confondere con MAX_LEN) Utilizza l'istruzione che legge l'ultimo carattere a destra (RIGHT) e confronta se il carattere è uguale a spazio vuoto ' '. Se il confronto è valido, cancella l'ultimo carattere (DELETE). Sai quanto è lunga la scritta (istruzione LEN precedente), ergo sai qual è l'ultimo carattere, cioè quello a cui puntare con il delete. Itera. Se il confronto non è più valido, significa che hai cancellato tutti gli spazi vuoti alla fine. Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 23 luglio Autore Segnala Share Inserita: 23 luglio 22 minuti fa, dina_supertramp ha scritto: Togliere spazi all'inizio: Utilizza l'istruzione che legge il primo carattere a sinistra (LEFT) e confronta se il carattere è uguale a spazio vuoto ' '. Se il confronto è valido, cancella il primo carattere (DELETE). Itera. Se il confronto non è più valido, significa che ha trovato il primo carattere non vuoto della stringa. Togliere spazi alla fine: Utilizza l'istruzione che ti dice quanto è attualmente lunga a stringa (LEN, da non confondere con MAX_LEN) Utilizza l'istruzione che legge l'ultimo carattere a destra (RIGHT) e confronta se il carattere è uguale a spazio vuoto ' '. Se il confronto è valido, cancella l'ultimo carattere (DELETE). Sai quanto è lunga la scritta (istruzione LEN precedente), ergo sai qual è l'ultimo carattere, cioè quello a cui puntare con il delete. Itera. Se il confronto non è più valido, significa che hai cancellato tutti gli spazi vuoti alla fine. Grazie mille per la risposta tempestiva, così facendo cancella un solo spazio iniziale o finale, o eventualmente più spazi iniziali e più spazi finali? Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 23 luglio Segnala Share Inserita: 23 luglio (modificato) La prima operazione, che cancella il primo carattere della stringa (delete che punta al char 1), sarà all'interno di un IF che verifica che il carattere più a sinistra è uguale a spazio vuoto. IF carattere a sinistra = vuoto THEN cancella carattere all posizione 1 ELSE ; END_IF; La seconda operazione, che cancella l'ultimo carattere della stringa (delete che punta all'ultimo char), sarà all'interno di un IF che verifica che l'ultimo carattere è uguale a spazio vuoto. LEGGI LUNGHEZZA STRINGA e restituisci il valore in una variabile INT "LunghezzaAttualeStringa" IF carattere a destra = vuoto THEN cancella carattere alla posizione "LunghezzaAttualeStringa" ELSE ; END_IF; Al primo ciclo: entra nell'IF, che è verificato, cancella il carattere vuoto Al secondo ciclo: entra nell'IF, che è verificato, cancella il carattere vuoto Al n-ciclo: non entra nell'IF perché non è verificato, entra nell'ELSE, non fa nulla ( ; ). Quindi, per rispondere alla tua domanda: cancella spazi vuoti all'inizio e alla fine finché ne trova 🙂 Modificato: 23 luglio da dina_supertramp Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 23 luglio Segnala Share Inserita: 23 luglio (modificato) Ricordi male o c'è anche la TRIM ? mi correggo... c'è ma a livello script nel pannello.... Modificato: 23 luglio da drn5 Link al commento Condividi su altri siti More sharing options...
max.bocca Inserita: 23 luglio Segnala Share Inserita: 23 luglio Anch'io ho sempre fatto due for per annullare gli spazi, c'è anche un funzione che trovi in rete da caricare se non vuoi farla tu. Gli si da in ingresso e in uscita della stringa da trimmerare. Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 23 luglio Autore Segnala Share Inserita: 23 luglio 2 minuti fa, max.bocca ha scritto: Anch'io ho sempre fatto due for per annullare gli spazi, c'è anche un funzione che trovi in rete da caricare se non vuoi farla tu. Gli si da in ingresso e in uscita della stringa da trimmerare. Puoi gentilmente postare il link....? Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 23 luglio Segnala Share Inserita: 23 luglio qui la funzione scritta in modo semplice semplice. Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 23 luglio Autore Segnala Share Inserita: 23 luglio 34 minuti fa, drn5 ha scritto: qui la funzione scritta in modo semplice semplice. Grazie mille drn5, davvero gentilissimo stasera provo e ti aggiorno. Grazie ancora buona serata. Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 24 luglio Autore Segnala Share Inserita: 24 luglio 15 ore fa, drn5 ha scritto: qui la funzione scritta in modo semplice semplice. Grazie mille drn5, davvero gentilissimo stasera provo e ti aggiorno. Grazie ancora buona serata. Grazie mille drn5 il codice funziona perfettamente, sei stato proprio gentilissimo, grazie ancora buona giornata Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 24 luglio Autore Segnala Share Inserita: 24 luglio Ovviamente ringrazio tutto per le info e per il tempo dedicatomi. Grazie e buona giornata a tutti Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 24 luglio Autore Segnala Share Inserita: 24 luglio 20 ore fa, dina_supertramp ha scritto: La prima operazione, che cancella il primo carattere della stringa (delete che punta al char 1), sarà all'interno di un IF che verifica che il carattere più a sinistra è uguale a spazio vuoto. IF carattere a sinistra = vuoto THEN cancella carattere all posizione 1 ELSE ; END_IF; La seconda operazione, che cancella l'ultimo carattere della stringa (delete che punta all'ultimo char), sarà all'interno di un IF che verifica che l'ultimo carattere è uguale a spazio vuoto. LEGGI LUNGHEZZA STRINGA e restituisci il valore in una variabile INT "LunghezzaAttualeStringa" IF carattere a destra = vuoto THEN cancella carattere alla posizione "LunghezzaAttualeStringa" ELSE ; END_IF; Al primo ciclo: entra nell'IF, che è verificato, cancella il carattere vuoto Al secondo ciclo: entra nell'IF, che è verificato, cancella il carattere vuoto Al n-ciclo: non entra nell'IF perché non è verificato, entra nell'ELSE, non fa nulla ( ; ). Quindi, per rispondere alla tua domanda: cancella spazi vuoti all'inizio e alla fine finché ne trova 🙂 Ciao, ho provato anche a realizzare il codice con la tia soluzione, però mi toglie un eventuale spazio finale o iniziale, ma se sono più di uno spazio, mi toglie sempre uno, forse sbaglio qualcosa........? Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 24 luglio Segnala Share Inserita: 24 luglio (modificato) 6 ore fa, Project75 ha scritto: Ciao, ho provato anche a realizzare il codice con la tia soluzione, però mi toglie un eventuale spazio finale o iniziale, ma se sono più di uno spazio, mi toglie sempre uno, forse sbaglio qualcosa........? Ciao @Project75 Stamattina avevo un po' di tempo, ho preso il blocchetto che feci a suo tempo, sulla falsa riga delle indicazioni che ti ho dato nei messaggi precedenti, e l'ho rivisto snellendolo un poco (ho racchiuso tutto in un solo FOR, non utilizzo più le istruzioni LEFT/RIGHT ma uso solo il FIND oltre che LEN e DELETE). In merito alla tua prova: non ti faceva la ripetizione perché quello che ti ho scritto andava inserito in cicli FOR che non ho espressamente indicato. Ti allego il blocchetto. Funzionamento: Cerca un singolo carattere e lo elimina, per tutte le volte che viene trovato. PS Indentazione da migliorare....😁 Modificato: 24 luglio da dina_supertramp Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 24 luglio Autore Segnala Share Inserita: 24 luglio 30 minuti fa, dina_supertramp ha scritto: Ciao @Project75 Stamattina avevo un po' di tempo, ho preso il blocchetto che feci a suo tempo, sulla falsa riga delle indicazioni che ti ho dato nei messaggi precedenti, e l'ho rivisto snellendolo un poco (ho racchiuso tutto in un solo FOR, non utilizzo più le istruzioni LEFT/RIGHT ma uso solo il FIND oltre che LEN e DELETE). In merito alla tua prova: non ti faceva la ripetizione perché quello che ti ho scritto andava inserito in cicli FOR che non ho espressamente indicato. Ti allego il blocchetto. Funzionamento: Cerca un singolo carattere e lo elimina, per tutte le volte che viene trovato. PS Indentazione da migliorare....😁 Dina-supertramp, grazie mille per il tempo dedicatomi, una domanda, da quello che vedo la tua soluzione se non erro elimina tutti gli spazi della stringa non solo quelli eventualmente iniziali e finali........o sbaglio? Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 24 luglio Segnala Share Inserita: 24 luglio (modificato) Alla riga 4 togli l'AND con InChar....non serve a nulla...l 6 minuti fa, Project75 ha scritto: Dina-supertramp, grazie mille per il tempo dedicatomi, una domanda, da quello che vedo la tua soluzione se non erro elimina tutti gli spazi della stringa non solo quelli eventualmente iniziali e finali........o sbaglio? Confermo, elimina tutti quelli che trova Per eliminare solo quelli all'inizio e alla fine non vedo via diversa o comunque simile a quella indicata da @drn5 Modificato: 24 luglio da dina_supertramp Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 24 luglio Autore Segnala Share Inserita: 24 luglio 6 minuti fa, dina_supertramp ha scritto: Alla riga 4 togli l'AND con InChar....non serve a nulla...l Confermo, elimina tutti quelli che trova Diciamo che a me interessa togliere eventuali spazi all'inizio ed alla fine della stringa, in ogni caso proverò l'istruzione potrebbe tornare sempre utile. Grazie mille ancora, gentilissimo. Buona giornata Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 24 luglio Segnala Share Inserita: 24 luglio 6 minuti fa, Project75 ha scritto: Diciamo che a me interessa togliere eventuali spazi all'inizio ed alla fine della stringa, in ogni caso proverò l'istruzione potrebbe tornare sempre utile. Grazie mille ancora, gentilissimo. Buona giornata Di nulla, scusa se mi sono staccato dal tuo obbiettivo iniziale...alla prossima Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 24 luglio Autore Segnala Share Inserita: 24 luglio 7 minuti fa, dina_supertramp ha scritto: Di nulla, scusa se mi sono staccato dal tuo obbiettivo iniziale...alla prossima Di nulla non c'è problema..... grazie ancora... Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora