Re: Text-based Browser
Posted: Fri Apr 12, 2013 3:24 pm
А я говорю, что работа ведется и уже почти закончена.
Хорошо, тогда подождём. Я стал очень недоверчив после разговора с HEX, который когда-то говорил, что пишет бразер. Я ему писал раза 4, на все вопросы он отвечал: "Почти готов, выложить не могу, т.к. ещё не до конца", ну и где его браузер?..SoUrcerer wrote:А я говорю, что работа ведется и уже почти закончена.
Собственно sid показываться не должен, но поскольку поддержки "печенюшек" (кукисов) нет, то почему бы не передавать их через GET?), за отсутствием лучшего. Хоть какая то передача данных сессии.Mario_r4 wrote:2) В адресной строке показывается мусор.
Исправлено r3477Mario_r4 wrote:Обнаружил два бага:
1) В последней версии не прокрутка скроллом почти перестала работать, в основном только боковые кнопки реагируют. С клавиатуры пролистывается нормально.
Это не мусор. Такие ссылки на странице выдаёт сервер для QEMU. Думаю, разница в том, что в Опере ты залогинен, а в HTMLv нет и этот ?sid=* что-то вроде id сессии.Mario_r4 wrote:2) В адресной строке показывается мусор.
Нет никакой разницы между & и & за тем исключением что именно "&" соответствует стандарту и проходит валидацию. Если использовать &, то валидатор как бы намекает что это не соответствует стандарту и требует поправить!SoUrcerer wrote:Leency, take a look at "&" - that's the reason of some broken links. There should be just "&"
И подставляет ID сессии как раз таки браузер к ссылке, а сам ID берет из кукисов.по стандарту, набор символов в купе с впереди идущим "&" - это html-сущность( или > "мнемоники").
Чтоб таким не занимался валидатор(браузеры, кстати, тоже такое делают, правда, в отличии от валидатора, если не получилось найти эквивалент в списке замены, они так и оставят просто "&") надо просто воспользоваться сущностью "&", которая означает тот же символ "&".
Отлично! Поддержка таблиц - это гуд!Leency wrote:Теперь понял насчёт &. Нужно писать функцию, которая заменяет одну строку на другую; кто подскажет как она называется? Вроде string_replace.
Ещё один момент: мальчик из группы вконтакте 99 года рождения натолкнул меня на интересную мысть по поводу таблиц. Теперь я знаю как в текущей реализации их сделать (должно быть несложно... не сложнее чем копирование папок) и очень хочу попробовать эту идую, вот только не знаю когда это будет. Завтра у меня начинается испытательный срок в моей первой IT компании - я буду тестировщиком.
Code: Select all
;-----------------------------------------------------
; Функция замены подстроки в строке
;-----------------------------------------------------
; lpSrc - указатель на исходную строку
; lpDst - указатель на буфер для полученной строки
; lpPattern - указатель на заменяемую подстроку
; lpReplace - указатель на строку для замены
; dNum - количество замен (0 - заменить все)
;-----------------------------------------------------
proc _replace lpSrc:DWORD, lpPattern:DWORD, lpReplace:DWORD,\
lpDst:DWORD, dNum:DWORD
pusha
; Указатель на буфер-приемник
mov edx,[lpDst]
; Счетчик замен
xor ebx,ebx
; Исходная строка не пустая?
mov ecx,[lpSrc]
cmp byte [ecx],0
jz .loc_ret
; Заменяемая строка не пустая?
mov eax,[lpPattern]
cmp byte [eax],0
jz .loc_copy_all
.loc_scan:
mov esi,ecx
mov edi,[lpPattern]
; Исходная строка закончилась?
cmp byte [esi],0
je .loc_end_replace
@@:
; Строки совпали с паттерном?
cmp byte [edi],0
je .loc_move_replace
; Символ совпадает с
lodsb
; Заменять все вхождения?
cmp [dNum],0
je .loc_skip_counter
; Уже заменили нужное количество?
cmp ebx,[dNum]
je .loc_move_one_char
.loc_skip_counter:
cmp al,byte [edi]
jne .loc_move_one_char
inc edi
jmp @b
.loc_move_replace:
; Увеличить счетчик замен
inc ebx
mov ecx,esi
; Записать заменяющую строку
mov esi,[lpReplace]
mov edi,edx
@@:
lodsb
or al,al
jz .loc_scan
stosb
inc edx
jmp @b
.loc_move_one_char:
; Скопировать один символ
mov al,byte [ecx]
mov byte [edx],al
inc edx
inc ecx
jmp .loc_scan
.loc_end_replace:
; Записать финальный 0 в строку
mov byte [edx],0
jmp .loc_ret
.loc_copy_all:
; Просто скопировать исходную строку
mov esi,[lpSrc]
mov edi,[lpDst]
@@:
lodsb
stosb
or al,al
jnz @b
.loc_ret:
popa
ret
endp