Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертация таблиц из DOS, Имеется ли возможность сделать в Delphi? 
:(
    Опции темы
gross
Дата 18.12.2004, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.12.2004

Репутация: нет
Всего: нет



Требуется разработать приложение на Delphi, которое бы позволяло конвертировать данные из специализированной программы по учету телефонных разговоров( программа работает в режиме MS-DOS).Проблема возникает в следующем: тарификация звонков, представляющая собой таблицу, легко просматривается в фаре, можно ли эти данные сконвертировать в режим Windows, где была бы организована база данных, которая также была бы разработана в среде Delphi.Данная база позволяла бы расчитать количество, время, стоимость звонков по городам.
PM MAIL   Вверх
Vladimir13
Дата 18.12.2004, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



базу то сделать просто ( расчитать время, стоимость...). С этим могу помочь ( сам страдал когда то)
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
Guest
Дата 18.12.2004, 12:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Что-то я не понял по поводу Memo.Данный компонент необходимо поместить на форму и в редакторе кода прописать строку с указанием конверитуемого файла?
  Вверх
Гость_gross
Дата 18.12.2004, 12:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Что-то я не понял по поводу Memo.Данный компонент необходимо поместить на форму и в редакторе кода прописать строку с указанием конверитуемого файла?
  Вверх
Vladimir13
Дата 18.12.2004, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



перевожу: мы чуть чуть пообщались по ICQ, поэтому чать разговора опущена.
кидаешь Мемо на форму и например на button1.OnClick пишешь Memo1.Lines.LoadFromFile(' ');
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
gross
Дата 18.12.2004, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.12.2004

Репутация: нет
Всего: нет



Владимир я периодически буду появляться в эфире.У меня почему вышеукаанным способом не получилось.Выдается при компиляции ошибка о не найденном пути, хотя он правильно прописан.
Добавлено @ 14:05
Да с очередной попыткой получилось запихать досовский файл в Memo.Что ты посоветуешь по поводу дальнейших действий. Каким образом программно можно получить читаемый текст?
PM MAIL   Вверх
Vladimir13
Дата 18.12.2004, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



assignfile(F1,'file.txt');
reset(F1) - для открытия файла
clоseFile(F1) - закрыть

Это сообщение отредактировал(а) Vladimir13 - 18.12.2004, 14:18
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
gross
Дата 18.12.2004, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.12.2004

Репутация: нет
Всего: нет



Я не совсем понял.Это события для компонента Memo?
Добавлено @ 14:35
В assignfile F1 - что означает?
PM MAIL   Вверх
Vladimir13
Дата 18.12.2004, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



assignfile F1 - это связь файла с программой
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
gross
Дата 18.12.2004, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.12.2004

Репутация: нет
Всего: нет



Я правильно понял выше указанные команды связывают внедренный файл с приложением через переменную, а далее нужно уже программно рарешить проблему корректного отображения данных?
PM MAIL   Вверх
Vladimir13
Дата 18.12.2004, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



все верно. можно так как я уже говорил
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
Bes
Дата 20.12.2004, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Че-то я не понял? проблема-то с кодировкой чтоли?.... режим дос - режим виндовс.... ?
PM MAIL   Вверх
gross
Дата 20.12.2004, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.12.2004

Репутация: нет
Всего: нет



Да проблема с кодировкой.Как корректно отобразить данные из досовской программы в приложение Delphi, а там уже работать с этими данными в виде базы данных.
PM MAIL   Вверх
Bes
Дата 20.12.2004, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Посмотри команду вроде бы называется OEMtoAnsi и обратно, я такую задачку решал - получалось, ну а про базу данных вопрос отдельный.
PM MAIL   Вверх
Guest
Дата 20.12.2004, 10:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А каким образом она используется?Эта команда аналогична OEMconvert?
  Вверх
Bes
Дата 20.12.2004, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



аналогична или нет... Чего не знаю того не знаю. :-)
Как Используется? Ну посмотри там pchar-ы помоему....
Ща сам попробую.

Ага, вот так работает.

procedure TForm1.Button2Click(Sender: TObject);
var
Ch:PChar;
begin
Ch:=pchar(Memo1.Text);
OemToAnsi(PChar(Memo1.Text),Ch);
memo2.Text:=Ch;
end;

end.

Это сообщение отредактировал(а) Bes - 20.12.2004, 14:09
PM MAIL   Вверх
Akella
  Дата 20.12.2004, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



я написал такую программку для печати DOS-текста
особую благодарность выражаю господину "posol", который любезно согласился и помог мне

в папке "txt" есть примеры файлов, с которыми работает эта программа
может быть прийдется поставить JEDDI(JCL122+JVCL200FinalFull),
Вам, наверное будет интересна эта процедура

Код

procedure TfmMain.opensouz(filename:string);
var
f : TextFile;
s, s2 : string;
MinLen, i, p, n : integer;
Widths : array of integer;
begin
 StringGrid1.RowCount:=1;
 StringGrid1.FixedCols := 0;
 AssignFile (f, filename);
 _sl.Add(filename);//добавляем файл в список удаления перед закрытием

// пропускаем ненужное до тех пор, пока не встретим шапку таблицы
 Reset (f);
 repeat ReadLn (f, s); until Pos(#$CD, s) <> 0;
 while (s[1] < #32) do Delete(s, 1, 1);//!!!
 MinLen := Length(s);//!!!

// читаем и формируем шапку таблицы
 SetLength (Widths, 0);
 repeat
  ReadLn (f, s);
  if Pos(#$B3, s) = 0 then Break;

  i := 0;
  while (s[1] < #32) do Delete(s, 1, 1);
  for i := 1 to Length(s) do if s[i] < #32 then s[i] := ' '; // !!!
  while Length(s) < MinLen do s := s + ' '; // !!!
  i:=0;

  OEMToChar(PChar(s), PChar(s));
  repeat
   p := 1;
   while (s[p] <> '¦') and (p <= Length(s)) do Inc(p);
   if p > 1 then
   begin
    if Length(Widths) < i+1 then
    begin
     SetLength(Widths, i+1);
     Widths[i] := p;
     StringGrid1.ColCount := i+1;
     StringGrid1.Cells[i, 0] := Copy(s, 1, p-1);
    end
    else begin
      //StringGrid1.Cells[i, 0] := StringGrid1.Cells[i, 0] + ' ' + Copy(s, 1, p-1);
    end;
    Inc(i);
   end;
   Delete (s, 1, p);
  until s = '';
 until false;
//  Widths[i] := p+20;//заявитель в заголовке 10 символов, а длина поля 20 символов
 StringGrid1.ColCount := StringGrid1.ColCount + 1;
 StringGrid1.Cells[StringGrid1.ColCount-1, 0] := 'Примечание';

//  Widths[0]:=25;
//  Widths[High(Width)-1]:=128;

// читаем данные
//n := 1;
n:=StringGrid1.RowCount;
while not EOF(f) do
begin
StringGrid1.RowCount := n+1;//+1;
ReadLn (f, s);
ReadLn (f, s2);
if (s = '') or (s2 = '') then break;

OEMToChar(PChar(s), PChar(s));
OEMToChar(PChar(s2), PChar(s2));
p := 1;
for i := 0 to Length(Widths)-1 do
begin
 StringGrid1.Cells[i, n] := Copy(s, p, Widths[i]);
 if i = Length(Widths)-1 then
 begin
  StringGrid1.Cells[i, n] := StringGrid1.Cells[i, n] + ' ' + Copy(s2, p, Widths[i]);
  StringGrid1.Cells[i+1, n] := Copy(s2, 1, p-1);
 end;
 Inc (p, Widths[i]);
end;
Inc(n);
end;

// выставляем ширину столбцов
for i := 0 to Length(Widths)-1 do
 StringGrid1.ColWidths[i] := Widths[i]*12;

StringGrid1.ColWidths[0] := 20;
StringGrid1.ColWidths[StringGrid1.ColCount-1] := 128;
CloseFile(f);
end;



Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  porekod.zip
PM MAIL   Вверх
gross
Дата 21.12.2004, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.12.2004

Репутация: нет
Всего: нет



можно поодробнее о процедуре procedure TfmMain.opensouz(filename:string);
PM MAIL   Вверх
Bes
Дата 21.12.2004, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



А что в две строчки писать уже не интересно? :-)
PM MAIL   Вверх
gross
Дата 21.12.2004, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 18.12.2004

Репутация: нет
Всего: нет



Почему то мне было отказано в скачивании файла zip.
PM MAIL   Вверх
Akella
Дата 21.12.2004, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



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

всякий мусор
в несколько строк
-----------------------------------------------------------------------------------------
столбец1|столбец2 |столбец3 |
------------------------------------------------------------------------------------------
данне 1 данные данные
данне 2 данные данные
данне 3 данные данные
данне данные данные
данне данные данные

как видно в данных могут быть и пробелы

ширину столбцов для StringGrid узнанём из шапки
массив Width - это массив, содержащий ширины столбцов
затем вставляем в сетку данные
StringGrid1.Cells[i, n] := Copy(s, p, Widths[i]);-обратите внимание на
индекс "i"
в конце выставляем ширину столбцов

более подробно опишу, может быть, позже, а то клавиатура без русских символов, т.к. менеджер - девушка, соответственно ногти...

PM MAIL   Вверх
Alex103
Дата 28.2.2005, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Цитата(dsergey @ 20.12.2004, 14:55)
я написал такую программку для печати DOS-текста
особую благодарность выражаю господину "posol", который любезно согласился и помог мне

в папке "txt" есть примеры файлов, с которыми работает эта программа
может быть прийдется поставить JEDDI(JCL122+JVCL200FinalFull),
Вам, наверное будет интересна эта процедура

Я тут увидел программу для перекодировки текста из Дос в Виндовс. Помогите мне в моей истории. У вас возникла проблемма перекодировки в Текстовом файле а у меня в Базе данных dbf. Мне очень нужно прочитать эту базу в програмке на Делфи!! Помогите! И кстати не могли ли бы вы откомпилировать вашу програму и выслать мне ато когда я скачал ваш файл с кодом себе то при его открытии мне Делфи начал говорить что у меня не хватает компонентов или еще чего-то потом при запуске начал говорить что нехватает файлов. Мой майл [email protected] С ув. Александр


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1531 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.