![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Ahora mucho mas claro, pero aun asi perdona mi ignoracia pero entiendo que Result es lo que va a devolver la funcion ¿no? esque en el PseudoBasic que he programado no existian las funciones y todavia me lio porque por ejemplo ni entiendo muy bien la definicion de la funcion
function PrimeraPalabra(o : string) : string; entiendo que PrimeraPalabra es el nombre de la funcion, a continuacion (o:string) querra decir que se va a usar esa variable de tipo Sting y :String que el resultado de la funcion de PrimeraPalabra será del tipo String ¿eso seria igual que decir lo siguiente? Funcion PrimeraPalabra:string; var o:String; Begin ... Por otro lado en la segunda Funcion function Restofrase(o : string) : string; begin if Pos(' ',o) = 0 then result := '' else result := Copy(o,Pos(' ',o)+1,1000); end;comprobamos si hay alguna posicion en la haya un ' ' pero eso ya se ha hecho en la primera funcion ¿no? y por otro lado en la ultima expresion usamos copy(o,Pos(' ',o)+1,1000) pero al hacer eso suponemos que hay 1000 caracteres en el String entonces no se copiaran todos los signos raros esos que veo cuando uso el depurador #$D ¿? Asias por tu paciencia y siento hacer unas preguntas tan simples. |
|
#2
|
|||||
|
|||||
|
Cita:
Cita:
Cita:
Cita:
Cita:
|
|
#3
|
|||
|
|||
|
Ok, ya me queda mas claro,
al final he montado un codigo que hace lo que quiero aunque se complica demasiado Código:
procedure TFXY.Button5Click(Sender: TObject);
var
cadena1:string;
cadena2:string;
cadena3:string;
siguiente:string;
posicion:integer;
posicion1:integer;
posicion2:integer;
chivato:integer;
chivato2:integer;
a: Integer;
b: Integer;
label
kk;
begin
chivato:=0;
chivato2:=0;
cadena1:='ENTITIES';
posicion:=pos(cadena1,mtexto.Text);
a:=posicion;
while chivato=0 do
begin
kk:
a:=a+1;
cadena2:=mtexto.Text[a+7];
if (cadena2=' ')or
(cadena2=#10) or
(cadena2=#13) or
(Cadena2=#0) then
BEGIN
b:=a+1;
siguiente:=mtexto.text[b+7];
if (siguiente=' ')or
(siguiente=#10) or
(siguiente=#13) or
(siguiente=#0) then
goto kk
else
begin
posicion1:=a+7;
chivato:=1;
end;
END;
end;
while chivato2=0 do
begin
a:=a+1;
cadena2:=mtexto.Text[a+7];
if (cadena2=' ')or
(cadena2=#10) or
(cadena2=#13) or
(Cadena2=#0) then
BEGIN
posicion2:=a+7;
chivato2:=1;
END;
end;
mtexto.SelStart:=posicion1;
mtexto.SelLength:=posicion2-posicion1;
Mtexto.SetFocus;
cadena3:=mtexto.SelText;
memo1.Text:=cadena3;
|
|
#4
|
|||
|
|||
|
He seguido mirando el tema ahora desde el punto de vista de las lineas y me encuentro con una chorrada de problemilla pero no le veo la salida, como se seleccionan varias lineas de Memo?
cuando trabajo Con string hago lo siguiente: memo.selstart:=posicioninicial; memo.sellength:=logitud; memo.setfocus; cadena:=memo.seltext; pero si trabajo con las lineas no se como hacerlo. Gracias |
|
#5
|
|||
|
|||
|
Hola de nuevo, se puede acceder a cada linea de un memo mediante un indice:
saludos |
|
#6
|
||||
|
||||
|
Hola, como te dice el amigo Coso, para acceder a las líneas debes hacerlo con la propiedad Lines y su respectivo indice.
Tu codigo en un memo mas o menos sería así (para marcar varias líneas), le das valores a LineaIni y LineaFin, que serían las líneas que quieres marcar:
Pero no entiendo porque lo haces así, si quieres obtener una parte de un texto en una cadena puedes utilizar la función Copy. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
|
#7
|
|||
|
|||
|
Hola, Gracias a los dos por responder, Pues la verdad es que yo tampoco se muy bien porque lo hago así, como comenté al principio no tengo mucha idea de delphi, y lo hago asi porque era un poco lo que se me fue ocurriendo, los problemas que estaba teniendo era al insertar texto en lineas
Memo.lines[3]:='linea tres'; Y a partir de ahí, probando cosas llegue a la pregunta anterior, el problema que tenia era que queria meter texto en la linea 3 cuando no existian las lineas anteriores, por eso no aparecia nada al escribir, la solucion pasó por meter un memo.lines[0]:=#13#10; memo.lines[1]:=#13#10; memo.lines[2]:=#13#10; ... de esa forma meto los saltos de linea. Voy a probar los codigos que me incluis asi como la funcion de Copy a ver si me voy aclarando. Por otro lado ¿habeis usado alguna vez el puerto ethernet? lo que me gustaria es sacar por el puerto ethernet un mensaje del tipo ascii por ejemplo ese ACTIVANDO SECUENCIAS BLABLA Es decir, se puede hacer algo parcido a un Hyper terminal de windows, donde marcando el IP del pc remoto le mande la trama que hemos escrito? He leido algo sobre las librerias Indy pero me parecen por un lado muy complicados y por otro que tienen demasiadas cosas para el uso que yo propongo, que no es mas que habrir un hiperterminal en un PC y desde el que está programa delphi mandarle un HOLA MUNDO, tal cual. ASIAS |
|
#8
|
|||
|
|||
|
Hola, lo del memo tendrias que usar el metodo Add :
sobre lo del hyperterminal, en 'demos' hay ejemplos de un chat y otros relacionados usando los componentes nativos de delphi. saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| contar numero de palabras en un string | lina maria | Varios | 9 | 19-05-2008 20:33:50 |
| Recorrer un STRING | creus | Varios | 3 | 07-01-2007 22:52:37 |
| Error al recorrer string | creus | Varios | 6 | 16-11-2006 22:39:45 |
| recorrer string | emiliu | Varios | 2 | 16-11-2005 10:23:25 |
| Recorrer un string | davidgaldo | Varios | 3 | 09-11-2005 10:04:28 |
|