Другие языки программирования и технологии

Помогите с Delphi! Умоляю!

У меня есть база @yandex.ru. Мне нужно написать код в delphi, чтоб она удаляла все знаки после "@", я написал код, но он не компилируется программой - выдаёт ошибку. Вы можете сказать, что в этом коде не так ?

memo2 := copy(pre base[a],1,pos('@',prebase[a])-1); - Нашёл его в инете и переработал под себя. Он не работает.

x := pos(prebase[a],'@',delete,-1); - Сам написал, думаю, что тут точно что то не так, так как я начинающий прогер.

P.S Эти коды в программе ошибок не выдают, выдают только при компиляций. Если этот код - бред, напишите пример пожалуйста.

P.S.S Быть может, что это Рабочая среда херовая, так как я её скачивал на каком то забугорном форуме и она у меня переодически вылетает и зависает.
не пытаясь вспомнить дельфю и её встроенные и библиотечные функции:

в первом
pos('@',prebase[a]) -два аргумента
во втором
pos(prebase[a],'@',delete,-1); -четыре аргумента.

как минимум сходу встаёт вопрос об аккуратности отслеживания скобок и запятых
( а учитывая "copy(pre base[a]" ещё и пробелов)

-----
добавка
"Эти коды в программе ошибок не выдают, выдают только при компиляций" примерно равно "этий кипичь не падить на нога, толька на ступня"
Это может указывать на ошибку не столько в коде столько в ДНК
Виктор Салов
Виктор Салов
75 320
Лучший ответ
Каким образом вы обрабатывете базу (в гриде, в мемо )?
Pos() работает так:
Pos('что ищем','где ищем') возвращает позицию вхождения.

Например: a: Byte;
a := Pos('?','abcd?2/d'); вернет позицию первого вхождения символа "?" в строке "abcd?2/d", т. е. 5. Потому что ? -пятый символ в строке.

Copy() работает так:
Copy('строка',номер начального символа, количество символов) и возвращает строку.
t: ShortString;
t := Copy('abcdefgh',2,3);
в t будет содержаться 'bcd', т. е. 3 символа, начиная со второго, в строке 'abcdefgh'.

В твоей задаче - удалить все, что после @ делай так:

memo2 := Copy(prebase[a],1,Pos('@',prebase[a])-1);
Или, если используешь memo как элемент формы, лучше пиши memo2.text;

В твоем случае ошибки могут быть если prebase[a] не содержат строки. Это массив строк у тебя? a - это индекс массива? Проверь сперва через watch или showmessage;
Т. е. добавь инструкцию ShowMessage(prebase[a]); и если всё ок, то увидишь свою строку. Я так понимаю - база е-майлов?
Задайте этот вопрос на форумах программистов, может быстрее найдете ответ
Bakhadir Kamalov
Bakhadir Kamalov
363