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 - Contare numero caratteri all'interno di una stringa
Forum - Pascal - Contare numero caratteri all'interno di una stringa

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti,
ho questo dubbio: E' possibile contare il numero di caratteri all'interno di una stringa su Pascal?
Esempio:

...
Write('Ciao a tutti');
....

E' possibile contare con qualche funzione il numero di caratteri? In questo caso sarebbe 12 per esempio

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 22:43
Mercoledì, 19/09/2012
devi usare la funzione Length(s:string)

http://www.freepascal.org/docs-html/rtl/system/length.html


Ibis redibis non morieris in bello
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:46
Giovedì, 20/09/2012
Che stupido che sono, lo sapevo benissimo.

Ma mi rimane un dubbio:
Io volevo creare un mini programma che contasse le parole all'interno di ogni write e poi eseguisse (80-numero caratteri)/2.

Il problema è che non riesco a capire come posso fare in modo di contare direttamente le parole dentro un Write

Grazie ancora

EDIT:
Sono arrivato a questa soluzione:

Codice sorgente - presumibilmente Plain Text

  1. s:='Inserisci un numero maggiore a zero';
  2. f:=((80-(length(s)))div 2);
  3. gotoxy(f,10);
  4. Write(s);



Però mi sembra una cosa troppo lenta e macchinosa.
Cioè, se devo fare per 5 Stringhe di testo questo procedimento perderei veramente troppo tempo

Ultima modifica effettuata da il 20/09/2012 alle 19:08
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 10:30
Venerdì, 21/09/2012
Non è possibile modificare una stringa immessa direttamente in un' istruzione write.

Se scrivere molte volte uno stesso procedimento, diventa eccessivo,  allora crea una funzione da poterla richiamare quando serve.

Ultima modifica effettuata da Poggi Marco il 21/09/2012 alle 10:31
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:54
Sabato, 29/09/2012
Ok, sono riuscito a creare la procedura e tutto,
Però adesso mi sorge un altro dubbio: Posso usare la procedura "centra" per centrare un'altra procedura?

Mi spiego, questa è la procedura che vorrei centrare:
Codice sorgente - presumibilmente Delphi

  1. procedure scrivi;
  2. var
  3.    a,b:integer;
  4.     begin
  5.           for a:=1 to 11 do
  6.                begin
  7.                for b:=1 to 5 do
  8.                write (tab[a,b]:5);
  9.                      writeln;
  10.                end;
  11.                readln;
  12.  
  13.     end;




e questa è la procedura che usa per centrare:
Codice sorgente - presumibilmente Pascal

  1. procedure centra(scritta:string;y:integer);
  2.    var
  3.    x:integer;
  4. begin
  5.      x:=((80-(length(scritta)))div 2);
  6.      gotoxy(x,y);
  7.      write(scritta);
  8. end;


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 18:24
Domenica, 30/09/2012
Come è stata dichiarata la matrice tab ?

Prova a definire una funzione che restituisca una stringa centrata, anziché una procedure che scrive a video una frase.

Ultima modifica effettuata da Poggi Marco il 30/09/2012 alle 18:30
PM Quote