Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   IndexOf (https://www.clubdelphi.com/foros/showthread.php?t=92508)

Javier13 15-11-2017 21:55:01

IndexOf
 
Var
alfabeto: String;
maximo: Integer;
digito : string;

begin

alfabeto:='abcdefghijklmnñopqrstuvwxyz';
maximo:=Length(alfabeto);
valor:=alfabeto.IndexOf(digito);


Lo que quiero hacer es. Saber la posición del alfabeto para eso cheque que se utiliza TStringList lo utilize pero luego tuve unos problemas no se si me puedan ayudar para hacer un indice

Caminante 15-11-2017 23:08:24

Hola

Y que problemas tuviste con el stringlist???

Saludos

Javier13 16-11-2017 01:28:31

Mi código es este

var
alfabeto : String;//TStringList;
maximo : Integer;
valor : Integer;
begin

alfabeto:='abcdefghijklmnñopqrstuvwxyz';
maximo:=Length(alfabeto);
valor:=alfabeto.IndexOf(digito);

Quiero hacer 3 cosas
1.- es hacer el abecedario
2.- cuantos caracteres tiene el abecedario
3.- saber el índice del abecedario
El 3 es el que no me sale
y para saber el indice tienes que usar TStringList para usar IndexOf

Casimiro Notevi 16-11-2017 10:19:47

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

Y recuerda poner los tags al código fuente, ejemplo:



Gracias :)

Y pon títulos descriptivos a tus preguntas, "indexof" no es ningún título que describa nada.
Saludos.

Javier13 16-11-2017 17:39:17

Mi código es este

Código Delphi [-]
var
  alfabeto : String;//TStringList;
  maximo : Integer;
  valor : Integer;
begin

  alfabeto:='0123456789abcdefghijklmnñopqrstuvwxyz';
  maximo:=Length(alfabeto);
  valor:=alfabeto.IndexOf(digito);

Quiero hacer 3 cosas
1.- es hacer el abecedario
2.- cuantos caracteres tiene el abecedario
3.- saber el índice del abecedario
El 3 es el que no me sale
y para saber el indice tienes que usar TStringList para usar IndexOf

Casimiro Notevi 16-11-2017 17:42:57

Creo que no se entiende lo que preguntas, ¿qué es "hacer el abecedario"? ¿qué es "saber el índice del abecedario"?

ecfisa 16-11-2017 18:00:07

Hola Javier13.

El planteo está bastante confuso, pero a ver si se trata de algo así...
Código Delphi [-]
...
var
  TS: TStringList;
  maximo, valor: Integer;
  digito: Char;
begin
  digito := '9';
  TS := TStringList.Create;
  try
    TS.CommaText := '0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,' +
                    'i,j,k,l,m,n,ñ,o,p,q,r,s,t,u,v,w,x,y,z';
    maximo := TS.Count;
    valor  := TS.IndexOf(digito);
    ShowMessageFmt('maximo: %d, valor: %d',[maximo, valor]);
  finally
    TS.Free;
  end;
end;

Saludos :)

Javier13 16-11-2017 18:34:49

Seria mas fácil la función ansipos?

ecfisa 16-11-2017 19:03:56

Hola.
Cita:

Empezado por Javier13 (Mensaje 522587)
Seria mas fácil la función ansipos?

Si por supesto.

Código Delphi [-]
var
  alfabeto: AnsiString;
  digito: Char;
begin
  alfabeto := '0123456789abcdefghijklmnñopqrstuvwxyz';
  digito   := '9';
  ShowMessageFmt('maximo: %d, valor: %d', [Length(alfabeto), AnsiPos(digito, alfabeto)]);
end;

Saludos :)

hal1967 19-11-2017 23:49:21

Pensando un poco en la inmortalidad del cangrejo
 
Todo muy bien y didáctico pero

Ya el alfabeto está definido, la A es 65, la B 66 y así vamos.

Código Delphi [-]
Ord('A') -64 // da  1

Si quieres saber la posición de cualquier letra en la variable x sería

Código Delphi [-]
  Ord(x) - 64

o mejor

Código Delphi [-]
  Ord(upcase(x)) - 64

... y con el espaÑol hemos topado

Entonces, un arreglo o mejor un string que no es lo mismo pero es igual
Código Delphi [-]
const
  alfabeto : string = 'abcdefghijklmnñopqrstuvwxyz';

así la posicion de digamos la letra "j" la podemos encontrar con la función pos (o ansipos si tenemos algo de previsión)
Código Delphi [-]
  pos('j', alfabeto) // ---> debe dar 10 (si no conté mal)

Digamos que deseas viajar en el tiempo y volver a los 70, entonces necesitas poder ubicar "Ll" y "ch"

la solución de https://www.clubdelphi.com/foros/ima...ine=1443014892 ecfisa es la que vale.


La franja horaria es GMT +2. Ahora son las 20:15:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi