Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Lettura da stringhe
Forum - Pascal - Lettura da stringhe

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti, da un pò di tempo sono attanagliato da questo problema. Come leggere da una stringa? Mettendo di avere una qualunque stringa contente caratteri alfanumerici separati tra loro da un separatore qualsiasi come faccio ad importare i valori contenuti in un'altra variabile?

ad esempio:

"ciao/amico/come/va"

voglio che

a,b,c,d,e:string;

siano rispettivamente

a='ciao'

b='amico'

c='come'

d='va'

un mio amico mi ha parlato di una funzione scanf in c..:-|

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:13
Sabato, 13/03/2010
Cosa c'entra il Pascal con la funzione del C ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:17
Sabato, 13/03/2010
non ne ho idea, non conosco il c..soltanto che il mio amico a telefono un paio di giorni fa me ne aveva parlato..ma non ho approfondito..

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:18
Sabato, 13/03/2010
Ciao!
Per questo esercizio ti consiglio di costruire un' array di stringhe, in modo da poter implementare un ciclo per la suddivisione della stringa.

Per quanto riguarda la funzione scanf() in c, essa serve per l' input dei dati, ed è abbastanza simile alla funzione read in pascal.

Ultima modifica effettuata da Poggi Marco il 13/03/2010 alle 19:19
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:19
Sabato, 13/03/2010
Testo quotato

Postato originariamente da Giarados:

non ne ho idea, non conosco il c..soltanto che il mio amico a telefono un paio di giorni fa me ne aveva parlato..ma non ho approfondito..



Sì ... ma tu vuoi scrivere il programma in Pascal o in C ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:31
Sabato, 13/03/2010
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da Giarados:

non ne ho idea, non conosco il c..soltanto che il mio amico a telefono un paio di giorni fa me ne aveva parlato..ma non ho approfondito..



Sì ... ma tu vuoi scrivere il programma in Pascal o in C ?



In Pascal ovviamente :D

Codice sorgente - presumibilmente Pascal

  1. Per questo esercizio ti consiglio di costruire un' array di stringhe, in modo da poter implementare un ciclo per la suddivisione della stringa.



e se invece il contenuto della stringa fossero degli integer? andiamo nel particolare..devo risolvere un esercizio in cui dovrei far verificare al programma la validità formale di una data..quindi..

a,b,c:integer;
c:string[10];
c:='13/03/2010';

posso importare da una stringa in una variabile intera???

PM Quote
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 20:32
Sabato, 13/03/2010
il problema dei tipi di dato é l'ultimo... esistono delle pratiche funzioni per trasformare da string a integer.

Comunque un buon metodo per dividere queste stringhe e di scorrerle con un ciclo for così:

Codice sorgente - presumibilmente Delphi

  1. for i:=1 to length(s) do
  2. begin
  3. //.....
  4. end;



e ad ogni ciclo scrivi:

Codice sorgente - presumibilmente Pascal

  1. if s[i] = '/' then
  2. begin
  3. //...
  4. end;




ti ho già dato un bel aiuto, ora cerca di finirlo da solo. Se proprio non riesci ti posso dare una mano ma se te lo scrivo tutto non impari un bel niente.

Ultima modifica effettuata da XBarboX il 13/03/2010 alle 20:33
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:44
Sabato, 13/03/2010
@ XBarboX: ti ringrazio :) non voglio assolutamente risolto il problema da te, anzi avrei preferitto mi avessi semplicemente detto a che serve length(s) (penso che per s intendi la stringa in questione) :D

Io ancora non ho ben capito come vengono letti i dati (sia da file che da string)..viene letto prima il primo carattere poi il secondo poi il terzo e così via oppure vi è bisogno di fare un qualche riferimento alla posizione del dato da leggere? ad esempio: leggi la seconda cifra della stringa x..

fin'ora ho letto e appreso più o meno bene la dispensa che ci ha fornito il liceo e http://it.wikibooks.org/wiki/Pascal ..qualche guida un pò più approfondita??

Ultima modifica effettuata da il 13/03/2010 alle 20:47
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 20:58
Sabato, 13/03/2010
Le stirnghe in pascal sono molto simili a vettori di caratteri. Ad esempio per accedere al 5° carattere basta indicare:

c:=frase[ 5 ] ;

Dove c è una variabile char, mentre frase è una stringa.

Per la conversione da stringa a numero c' è la funzione
val( <stringa>, <VariabileNumerica>, <errore> )
dove con stringa, è appunto la stringa da convertire, in VariabileNumerica viene salvato il valore numerico, mentre errore deve essese una variabile integer.
In essa viene registrato 0 in caso di successo, un altro numero altrimenti.

Per quanto riguarda la gestione dei file, apri un altro topic per chiarire i tuoi dubbi.

Un' altra guida al pascal si trova in questo sito (vedi menù guide), ma ti consiglio di far riferimento ad un libro.

Ultima modifica effettuata da Poggi Marco il 13/03/2010 alle 21:08
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo