Помогите решить задачу

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Помогите решить задачу

Сообщение Fedorfx » 16.11.2004 (Вт) 2:24

Всем привет.
Есть прога не моя.
в ней есть данные в виде боольшого списка - буквы и цыфры.(листов этак на 10 000)
ЗАДАЧА забрать данные из этой проги в мою прогу(VB)/

Думаю как делать.
посылать через сенд мессадж PgDown потом через GetPixel получать скрин из листа и через собственный распознователь символов писать все это дело в свою базу.

У кого есть мысли по самой идеи. Как реализовать почти знаю но предпологаю что алгоритм не самый быстрый.
P.S. В той проге что содержит данные я могу поменять только размер шрифта и все :-(

Может есть готовые модули распозновалки?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 16.11.2004 (Вт) 3:49

Эээ... исходные данные картинка или текст?
А то думаю, нафиг распознование коли текст есть.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.11.2004 (Вт) 4:26

Канэшно текст. Ты представляешь 10000 картинками? Где такой комп надыбать бы :)

Но даже если картинки, то их можно напринтскринить и файнридеру скормить.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 16.11.2004 (Вт) 4:29

Не, а зачем хитрить с конвертированием в битмап? GetWindowText отменили, чтоли? или я невнимательно прочитал...
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 16.11.2004 (Вт) 10:55

Дело такое.
Есть прога, которая коннектится через инет к базе и работает с данными. В ней есть окно которое ПОКАЗЫВАЕТ мне данные. Там нет ни Save as ни чего. Есть только print and preferense где я могу выбрать фонт. в принте есть принт то clipboard.

так вот данные естественно текс. Одним шрифтом и одним цветом.
Ну не знаю я softice и дебугеры мне не знакомы и socketspy конечно может и поможет но наверняка эти люди сжимают трафик и шифруют его.
Вот я и решил содрать текст через экранную копию.
Посмотрел Spy++
окно вроде стандартное
рамка - в ней класс AfxFrameOrView42s и справа scrollbar

.P.S а насчет GetWindowText не знал и не думал. А это со всеми окнами работает и что есть из этой оперы еще?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.11.2004 (Вт) 10:57

FAKK2, а ты возьми GetWindowText с PictureBox, на котором напечатан текст?

Fedorfx, если GetWindowText не прокатит, то только так тебе и останется делать (писать распозновалку). Но это будет не очень сложно, потому что экранный шрифт всегда будет выглядеть одинаково; просто загоняешь в буфер образы символов и затем сравниваешь их.
Если задача разовая, то советую использовать SnagIt, он может выдирать текст из изображения.
Lasciate ogni speranza, voi ch'entrate.

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 16.11.2004 (Вт) 11:21

Предлагаю обойтись без VB
Есть программа Automate, позволяющая автоматизировать повторяющиеся действия. Есть программы Kleptomania и SnagIt. Первая распознаёт текст с экрана и имеет встроенный OCR, вторая тоже умеет хватать некст, но только из окон или в ввиде картинки, но зато умеет сама работать с прокручивающимися документами.
Но только перед этим стоит таки попытаться самостоятельно разобраться с форматом данных который использует исследуемая программа.

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 16.11.2004 (Вт) 12:31

GetWindowText не прокатил
буду посмотреть SnagIt
где можно посмотреть что за зверь AfxFrameOrView42s
может там есть метод для обмена данными, но нет реализации в проге?

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 16.11.2004 (Вт) 12:40

да кстати

Dim hHandle As Long
hHandle = FindWindow(vbNullString, "test1")
hHandle = FindWindowEx(hHandle, 0&, "AfxFrameOrView42s", vbNullString)
Dim MyStr As String
MyStr = String(GetWindowTextLength(hHandle) + 1, Chr$(0))
GetWindowText hHandle, MyStr, Len(MyStr)
txtText.Text = MyStr

второй хендл находиться но вот возвращается 1 байтик и все :-(
по виду данных похоже на Listbox

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.11.2004 (Вт) 18:18

alibek писал(а):потому что экранный шрифт всегда будет выглядеть одинаково; просто загоняешь в буфер образы символов и затем сравниваешь их.

Это если фон однородный. Если пёстрый - текст просто так не выделить...
Изображение

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 16.11.2004 (Вт) 19:33

Белый фон у меня
и буковки ровные и черные
но идея мне нравиться перестала.не по пацански как то.
изучаю ее artmoney ищу массивы с данными.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.11.2004 (Вт) 21:02

tyomitch писал(а):Это если фон однородный. Если пёстрый - текст просто так не выделить...

Да, об этом я не подумал.
Но если буквы известного цвета, то логика простая -- цвет - черный, не цвет - белый.
Lasciate ogni speranza, voi ch'entrate.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 16.11.2004 (Вт) 22:34

Представляю сколько лет уйдет на сканирование и распознование всех десяти тысяч картинок в каждой по xxx пунктов... :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 2

    TopList  
cron