Foros Club Delphi

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

Khronos 17-11-2008 19:39:39

Bueno, veo que el hilo esta un poco abandonado y pensé: "vamos a revivir el hilo con más código inútil" :D

Bueno el siguiente código son copias "baratas" de las funciones ExtractFileName, ExtractFileExt y ExtractFilePath pero menos sofisticadas que las que vienen en la unidad SysUtils ;)

Código Delphi [-]
function ExtractFileNameW(const FileName: string): string;
var
i: integer;
begin
  result:= EmptyStr;
  for i := Length(FileName) downto 0 do
      begin
        if FileName[i] = '\' then
          begin
            result:= Copy(FileName, i + 1, length(FileName));
            break;
          end;
      end;
end;

function ExtractFileExtW(const FileName: string): string;
var
i: integer;
begin
result:= EmptyStr;
for i := Length(FileName) downto 0 do
  begin
      if FileName[i] = '.' then
        begin
          result:= Copy(FileName, i + 1, length(FileName));
          break;
        end;
  end;
end;

function ExtractFilePathW(const FileName: string): string;
var
i: integer;
begin
result:= EmptyStr;
  for I := Length(FileName) downto 0  do
    begin
      if FileName[i] = '\' then
        begin
          result:= Copy(FileName, 0, i);
          Break;
        end;
    end;

end;

Un ejemplo de llamada:

Código Delphi [-]
   showmessage(ExtractFilePathW(paramstr(0)));
   showmessage(ExtractFileExtW(paramstr(0)));
   showmessage(ExtractFileNameW(paramstr(0)));

Salu2

BlackDaemon 24-11-2008 16:47:24

Leer datos puerto COM usando ApdPRO
 
Hola

Buendo, estaba trabajando con el puerto serial /COM y he decidido usar la librería comport, esta trae una función que te regresa los datos recibidos, al igual que un método donde puedes meter código y leer los datos recibidos, al final he decidido usar las poderosas ApdPRO , Bueno, solo he usado el componente ApdComPort y este igual tiene un método donde puedes hacer lo que quieras con la respuesta del puerto, pero yo necesitaba poder tener la respuesta en cualquier parte de mi código y poder usarla en más de 1 ocación, y enviar el comando que quiera y tener la respuesta para trabajar con ella, eso igual puedes hacer en el método OnTiggerAvail pero en mi caso se a llenado de puros if, alse if, etc

Así que he decidido hacerme mi própia función que me retorne la respuesta del puerto, es un poco cutre y mal hecha de seguro, recién estoy aprendiendo delphi, me gustaría que me corrijan en que fallo, pero a mi me funciona perfecto (suerte seguro jeje) pero aquí está:

Código Delphi [-]
function SendAT(AT: string): String;
var
  c : String;
  ET : EventTimer;
begin
  NewTimer(ET, 15);
  ApdComPort.PutString('AT' + AT + #13#10);

  repeat
    Application.ProcessMessages;
    //ApdComPort1.ProcessCommunications;
    while ApdComPort.CharReady do
    begin
      c := c + ApdComPort.GetChar;
      Sleep(1);
    end;
  until TimerExpired(ET);
  Result := c;
end;

Para su uso solo llamen a la función con el comando necesario.

Ejemplo:
Código Delphi [-]
var
respuesta: String;
Begin
  // enviamos una cadena vacía, pero en si, se envía el comando AT, la respuesta sería algo así : AT: OK, igual pueden enviar '+CGMI', etc
  Respuesta := SendAT(''); 
  Showmessage(Respuesta);
end;
Bueno, con el tiempo que le he puesto parece funcionar, ya que eso creo que tiene "mucho" que ver cuando escribes/lees el puerto.

Espero que a alguien le sirva.

Saludos!


La franja horaria es GMT +2. Ahora son las 23:26:01.

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