![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Маша сильно болеет туберкулезом.
Антон К. © (2002-09-19 20:02:00)Вопрос такой.
Есть к примеру строка: Маша сильно болеет туберкулезом.
Нужно из этой строки вытащить все слова и вставить их в listbox этаким списком. Т.е в listbox выглядеть это должно так:
Маша
сильно
болеет
туберкулезом.
Как такое сделать, а? И очень желателен исходник!
Еще вопрос. Почему pos(), реагирует на Регистр и возможно ли это как то изменить. К примеру код
i:=pos("маша","Маша сильно болеет туберкулезом.") не найдет ничего, т.е i будет равно 0, а вот
i:=pos("Маша","Маша сильно болеет туберкулезом.") укажит цифру 1, т.е в принципе найдет искомое слово Маша. Видимо это функция запрограмированна на учет регистра, тогда как же узнать, что определенное слово есть в строке без учета регистра? Какая есть альтернатива Pos?
Val (2002-10-02 21:48:00) [1]>Shrek © (20.09.02 19:00)
мне про БД поравилось :)
Вы с ними работали?
sancho (2002-10-02 21:20:00) [2]Бедная Маша.... Болеет туберкулёзом да ещё парень её бросил. :(((
Парень (2002-09-30 18:54:00) [3]А Маша между прочим была моей первой девушкой...
Anatolyk (2002-09-30 14:23:00) [4]и еще ...
//при записи в файл - все ОК
tmpstr := pchar(s);
CharToOEM(tmpstr,tmpstr);
WriteLn(CfgFileVar,tmpstr);
Anatolyk (2002-09-30 14:17:00) [5]A без второй переменной?
Polevi (2002-09-30 12:51:00) [6]2Anatolyk (30.09.02 12:27)
под второй параметр надо в 2 раза больше памяти, она у тебя не выделена вот так легенды про глючные Delphi 6 и рождаются
Anatolyk (2002-09-30 12:27:00) [7]Народ, Ша! И в правду, оставьте бедную девочку - пусть болеет как умеет.
Лучше подскажите, почему D6 глючит в такой ситуации (как правильно написать?):
Приложение консольное.
Хочу writeln-ом написать строку по-русски.
Как только перед этим делаю CharToOEM(S,S) - ругань, сказки про неверные адреса, якобы user.dll не такой и пр.
Туберкулез (2002-09-29 22:30:00) [8]Хорош болтать!
Не мешайте нам с Машей.
И свет погасите.
Smiths (2002-09-29 17:23:00) [9]Бедная Маша... :)
Drin (2002-09-29 13:03:00) [10]2Smithson
Не заставить человека ПРИДУМАТЬ алгоритм, а развить его способности, научить его думать в нужном направлении.
Smithson (2002-09-27 12:01:00) [11]2 Drin
И толку?!! Я тоже так учился, только все, что нам давали в институте, в жизни на надо вообще. А если ты пытаешься привести пример, как можно заставить человека ПРИДУМАТЬ алгоритм, то я тебе скажу - заставить придумывать нельзя! Придумывать человек или умеет, или нет. И тогда он лазит по форумам с вопросом "как сложить 2 и 2".
2 Zemal
По-моему, умение написать свой алгоритм гораздо более ценно, чем умение найти нечто похожее в Help`е. К тому же у людей бывают разные конструкции голов. И это не наезд - мне доводилось заниматься поддержкой mainframe IBM, так вот что я скажу - за такие инструкции (пошаговые, для тупых) - убил бы, если б поймал. Ну по разному мы с автором инструкций мысли и термины разные у нас для одних и тех же вещей были... Это я к тому, что поиск в Help порой может быть весьма нетривиальной задачей для человека, привыкшего другой структуре мышления...
Sorry за offtopic, тут тема такая, болтливая....
Маша (2002-09-27 11:09:00) [12]Ну вы блин даёте.....
Толик (2002-09-27 09:53:00) [13]Маша, как Ленин - не умрёт никогда!!!
Drin (2002-09-26 22:16:00) [14]2Shrek
Правильно, что-бы корректно и правильно научится писать приложения на Делфи нужно изучить Паскаль, Обжект-Паскаль и только тогда приступать к изучению языков более высокого уровня!
А главное развить в себе алгоритмичесскую логику!
Я вот учусь на II курсе в "КПИ", так ещё на I курсе, на втором уроке программирования нам дали задание нарисовать блок-схему решения квадратного уровнения, где такие вещи как sqrtне проходят, алгоритм выведения квадратного корня придумывайте сами! А на втором семестре мы писали программы не испольсуя языков-трансляторов, а используя HEX-редактор, вот так вот.
MaratFromTomsk (2002-09-23 07:46:00) [15]Про решение задачи
"Нужно из этой строки вытащить все слова и вставить их в listbox этаким списком."
Во первых тут две задачи
1. строку разделить на слова
2. добавить слово в список
У меня тут возникают вопросы и ответы:
Cлово = последовательность сиволов между одним и более разделителей.
Разделитель = табуляция, перевод строки, точка, запятая, точка с запятой и т.д.
надо ли извлекать разделители вместе со словом?
скорее всего нет.
const Delimeters = [#8, #10, #13, #32, ".", ";"];
function GetWord(var p: PChar): string;
begin
// пропустить разделители
while p^ in Delimeters do inc(p);
result := "";
// пока не встретился разделитель
while not(p^ in Delimeters) do begin
inc(p);
result := result + p^;
end;
end;
procedure InsertWordsFromLineToHell(const s: string);
var
p: PChar;
word: string;
begin
p := PChar(s);
repeat
word := GetWord(p);
if word <> "" then Hell.Add(word);
until s = "";
end;
Обычно в таких задачах где нужно выделять слова, надо делать и другие вещи.
Ужасно не люблю спагетти, где все так перепуано.
Нужно отделять как показывать, от того что показывать
и какие преобразования необходимо при этом выполнять.
Есть патерн Observer. Модель - представления модели.
Модель это данные, например таблица
Представления - Grid, Chart и т.д.
ну я уже уплыл в сторону ....
а про то что StringList стал круче приятно узнать
вот уже Delphi 7 появилась
я к сожалению еще на Delphi 5
Vlad1 (2002-09-22 12:16:00) [16]>To Zemal
В общем согласен! Но нельзя забывать и об ошибках в Хелпах (ведь бывают!).
Сергей Медяник (2002-09-20 22:49:00) [17]К сожалению, иногда сложно выбрать: потратить X времени на самостоятельный, неказистый, но работающий алгоритм ИЛИ потратить Y времени на поиск того, как это делается просто и красиво. Что меньше X или Y никогда не узнаешь заранее! Пока не изобрели способов загружать непосредственно в память человека HELP к языку, приходится довольствоваться чтением, а это занимает реальное, предоплаченное время :-)
Не стОит обижать человека, если он предлагает свой способ, на который он затратил X времени. Все-таки форум - обмен мнениями, а не истина в высшей инстанции.
P.S. Передавайте привет Маше!
AndreyS (2002-09-20 19:09:00) [18]Какая, однако, живучая Маша оказалась, хотя и сильно болеет туберкулезом.
Никого не хотел обидеть. Просто шутка.
Shrek (2002-09-20 19:00:00) [19]To Zemal
Програмист должен знать и уметь всё, только тогда он будет програмистом. Я думаю что перед тем как использовать автомобиль Ты должен изобрести вилосепед вот только тогда ты будеш понималь как работает автомоль, и даже может быть сможеш создать свой автомобыль и даже не один.
Тоесть и за TString и за цыкл.
Прышлушаемся к qube: розвиватся надо, хотябы только по тому чтоби не забуть паскаля.
Я заметил что на этом форуме сильно ценится asm а для чего?
Если я буду использовать только TString я буду програмистом который умеет хорохо обращатся с мышкой.
Посмотрыте как делаются БД, можно создать полностю работоспасобною програму не написаф не строки кода, и фиг я буду знать и как там всё это работает. И скажите что я програмист после такого.
Если так пойдёт и дальше то внедалёком будущем например Делфи 10, програмист создаёт програму: говорит в микрофон "Создать новою базу даних с такими полями ... Окомпилировать!"
Я не имею ничего против такого так как оно скоро будет, но тогда я хрен буду знать что такое цыкл.
P.S.Скольно людей столько и мыслей.
Zemal (2002-09-20 18:30:00) [20]Антон К. >> Да тут уже и не про твой вопрос полемика идёт :). Тут уже часть форума "Потрепаться". :) Ту молодец, задавай вопросы и запоминай ход мысли. Рости! Удачи!