Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2012, 18:08   #31
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

там далеко не 2 строчки читают смс... может тебе стоит ту прогу допилить в свою... если не можешь перетащить в свою
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 09.03.2012, 19:03   #32
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Ты не много не понял там в проэкте на форме есть кнопка Get SMS на нем 2 строчки. Модуль untModem прописал в uses. То есть там на кнопке и есть вызов функций из этого модуля. А в этом модуле есть функция OPEN в ней возникает проблема на самой первой строке
FHandle:= CreateFile(PChar('\\.\COM6'),GENERI C_READ or GENERIC_WRITE,0,nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,0);
ОШИБКА
VARIEBLE 'LHeader' might not have been initialized
Сделать проэкт на основе этого не вариант, так как у меня почти написана программа мне не хватает только прочитать смс.
Если у тебя есть готовая функция чтения смс ,без лишнего, выложил пожайлуста.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 10.03.2012, 00:33   #33
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Блин весь вечер тестировал, но так и не понял. С первой ошибкой и рядом похожих я справился , там надо было указать что бирём fHandle из конструктора, но вдруг у меня возникла проблема с датой LDT помоему ,пишу с MAC-а, но не уверен правильно ли написал LDT или LTD.Короче когда я её (эту строку с датой) удаляю, то происходит точно такая же ошибка только на строку выше и так пока все строки функции не удалю. Что за странные исходники? Кстати ошибка такая же как я тебе писал.Да и ещё проэкт компилируется ,но происходит ошибка времени исполнения когда с модема прочитать пытаюсь смс. Ты вроде говорил что я даже из исходников код вытащить не могу ,а ты сам то его вытаскивал? Если вытаскивал , то я полный баран, но идею не брошу, мне очень надо.Да и на основе тех исходников прогу сделать не вариант(во первых слишком много переписывать,а во вторых(самое то главное) у этого проэкта слишком много файлов. Если кто то знает в чём дело расскажите пожайлуста. Мне надо просто прочитать самое первое сообщение даже кодировки менять не надо, неужели это так сложно?
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 10.03.2012, 06:32   #34
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

в исходниках номер ком порта берется из компонента...
и ты каждый раз будешь перекомпилировать проект если номер сом порта поменяется?
И ты не забыл тип переменной зарегистрировать в var?
пробегись f7 по проекту тому и увидишь как он его выполняет может чего забыл перетащить.
он тебе ясно написал что LHeader не инициализировано
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 11.03.2012, 17:45   #35
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Всем привет!
Барней, я решил попробывать написать код сам , компилируется и исполняется без проблем. Если я всё правильно делаю то осталось прочитать из файла. В тех исходниках, что ты мне дал, я не нашёл функции ReadFile. Объясни пожайлуста как прочитать из порта и всё ли я правильно делаю. Код ниже. СПАСИБО ЗА ПОМОЩЬ!!!!!!

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  FHandle:THandle;
  dcb:TDCB;
  CommTimeOuts:TCommTimeouts;
  LWrited,z:Cardinal;
  ch:Byte;
  SMS:String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//Открываем порт 6
  FHandle:=CreateFile(PChar('\\.\COM6'),GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,0);

  if FHandle=INVALID_HANDLE_VALUE then
  begin
   MessageDLG('Порт не открыт (6)',mtError,[mbOK],0);
   close;
  end;

  SetupComm(FHandle,512,512);
  GetCommState(FHandle,dcb);

  dcb.BaudRate:=CBR_115200;
  dcb.ByteSize:=8;
  dcb.Parity:=NOPARITY;
  dcb.StopBits:=ONESTOPBIT;
  dcb.Flags:=4113;
  dcb.XonChar:=#17;
  dcb.XoffChar:=#19;



  CommTimeOuts.ReadIntervalTimeout:=2000;
  CommTimeOuts.ReadTotalTimeoutConstant:=5000;
  CommTimeOuts.ReadTotalTimeoutMultiplier:=10;
  CommTimeOuts.WriteTotalTimeoutConstant:=5000;
  CommTimeOuts.WriteTotalTimeoutMultiplier:=10;

  MessageDlg('Порт успешно открыт. Запрос СМС',mtInformation,[mbOK],0);

  //Порт открыт . Пишем в порт AT команды
  WriteFile(FHandle,PAnsiChar('AT+CMGF=1'+#$D#$A)^,Length('AT+CMGF=1'+#$D#$A),LWrited,nil);
  writeFile(FHandle,PAnsiChar('AT+CMGR=0'+#$D#$A)^,Length('AT+CMGR=0'+#$D#$A),LWrited,nil);

  MessageDlg('В порт отправлен запрос на СМС',mtInformation,[mbOK],0);
  //Считываем информацию из порта

  readFile(FHandle,ch,1,z,nil);



end;

end.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 11.03.2012, 18:12   #36
andrey21and
 
Регистрация: 09.03.2012
Сообщений: 5
По умолчанию

так вроде бы же она была? На ней у тебя прога и вылетала
andrey21and вне форума Ответить с цитированием
Старый 11.03.2012, 18:12   #37
andrey21and
 
Регистрация: 09.03.2012
Сообщений: 5
По умолчанию

Я имею в виду функцию
andrey21and вне форума Ответить с цитированием
Старый 11.03.2012, 19:05   #38
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Да в своем примере я её указал, но не знаю как с её помощью достать смс из порта.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-

Последний раз редактировалось vovken1997; 11.03.2012 в 19:20.
vovken1997 вне форума Ответить с цитированием
Старый 11.03.2012, 19:33   #39
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

ну если бы ты внимательно код пролеживал то функция это идет из


Код:
Windows.ReadFile(FHandle, Fbuf, FCount, FCount, @FOverlapped);
остальные функции ищи в untModem.pas
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 11.03.2012, 20:46   #40
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

ОК. Но как это сделать в моей программе. В какой из параметров этой функции должна записаться смс.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как управлять usb-мышкой Dimaz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 30.03.2011 21:58
Delphi. Вывод данных через USB AlessOn Помощь студентам 9 02.11.2010 23:21
Как управлять в Delphi диспетчером процессов? docbrain Общие вопросы Delphi 6 10.02.2010 08:00
Через Bluetooth управлять микроконтроллером Maxs Микроконтроллеры, робототехника, схемотехника, 3D принтеры 3 25.05.2009 18:54
Есть ли возможность управлять драйвером спец. звуковой карты через длл или как то иначе? chysti Win Api 2 14.02.2008 12:57