В вашем в коде (case с of) записана русская буква С, вместо английской C, поэтому, вероятно, и ругается даже при смене типов переменных. Код, который будет работать: Code: function ABC(par: char): string; begin case par of 'A': begin Result := 'lalala'; end; 'B': begin Result := 'ololo'; end; end; // case end; // ABC Если в качестве параметра функции передается только 1 символ, то логично использовать тип Char, нежели String.
ну, знаете, я не настолько дурак, чтобы писать переменные в делфи по-русски я тоже думал о том, чтобы передавать char, но ситуация такова, что я должен преобразовать тип string в тип char, а именно это у меня что-то не выходит..
Используйте функцию, написанную выше, вызванную так: Code: ... var str1, str2: string; n: byte; begin ... // вычисление нужной строки и номера нужного символа в строке (n) str2 := ABC(str1[n]); ... end; каждый может ошибиться мы же люди, а не машины.
А вот теперь мы возвращаемся к тому, с чего я начал!!! Нельзя организовать оператор case перебором по string. Он ругается, что ему нужен ordinal type. Char бы подошел.. но я в тупике, и не могу понять, что делать, думать что-то вместо case или преобразовывать string во что-то другое, "более числовое" ------------------------ Все, вопрос снят, проблема решена! str: string; с: char; i: byte - переменная цикла for; c:=str; ABC(c); все работает
Значит такой вопросик : есть Тмемо в который водят в столбик цифры от 4 до 9 знаков внизу есть еще 6 Тмемо Нужно чтоб эти цифры(которые в столбик) сортировались в те 6 Тмемо по такому принцыпу: в 1Тмемо цифры из 4х знаков в 2Тмемо цифры из 5 и тд до 9 вродебы реализовал а почемуто несортирует он их( прошу помочь с реализацией в Делфи7
Code: var x : integer; begin for x := 0 to memo1.Lines.Count-1 do begin case length(memo1.Lines.Strings[x]) of 4:memo2.lines.add(memo1.Lines.Strings[x]); 5:memo3.lines.add(memo1.Lines.Strings[x]); 6:memo4.lines.add(memo1.Lines.Strings[x]); 7:memo5.lines.add(memo1.Lines.Strings[x]); 8:memo6.lines.add(memo1.Lines.Strings[x]); 9:memo7.lines.add(memo1.Lines.Strings[x]); end; end; end;
>>>>>>>> 4:memo2.lines.add(memo1.Lines.Strings[x]); <<<<<<<<<<<, мемо1 - там данные. мемо2 - для 4 мемо3- для 5 итд
Какая стратегия изучения Дельфи? Сначала выучить турбо паскаль 7.0 потом дельфи? Или может сначала бейсик а потом дельфи, или бейсик - тпаскаль - дельфи?
плин опять столкнулся с почти такого же рода проблемой нос разу задам пару вопросов чтоб не мучать несколько раз 1) есть строка из цифр затем знак ; и после него вместе с ним надо удолить все из строки опять же во всех строках Тмемо 2)Есть Столбец цифр нужно расположить их в те же 6 мемо по кол-ву повторяемых цифр тоест например 72377728738 вот тут повторение цифры 7 допустим 5 раз надо значит вывести в мемо5 66628266986666 тут больше 6к 9 штук в Мемо9 и вот так чтоб он с каждым номером в столбце начиная от повторения там 4х цифр так как длина числа максимум будет 9 символов
есть такой тупой вопрос как объявить такой тип данных если возможно Code: _ParM= packed record Menu:string; SubMenu:Array of _ParM; Index:Integer; end; среда ругается на такое объявление.
А ты его не сможеш объявить потому что он рекурсивный, тоесть сам в себе. Другое дело еслибы переменная SubMenu былабы ссылкой на массив.
Такой вопрос... Сделал многопоточное прил. для работы с интернетом, запускаю... При старте потоков выск. ошибка и пишется "Invalid pointer operation" При 2 потоках (до этого ставил 4) все нормально работает! И еще тут есть такой ньюанс что иногда пашет и с 4 потоками Что может быть не так что вылетает такая ошибка? (чувствую что что-то не так намутил с крит. секциями (но не точно предпологаю))
StringGrid Привет Всем! Вот такой вопрос. Есть StringGrid/ В нём много ячеек. Нужно записать значение 2-6 edit'ов в ячейки таблицы StringGrid. ( В строчку) Причем это делать много раз ... и чтобы ранние значения не были заменены на новые Они должны сохраняться из базы ( xls файл )
Вспомнил про возможность сокрытия информации в потоке type info >> file.xxx:stream1 не кто не знает как это реализовать на делфи?
Code: var f:textfile; s:string; begin assignfile(f, 'e:\test.txt:strem1'); rewrite(f); write(f,'hello222222222'); closefile(f); assignfile(f, 'e:\test.txt:strem1'); reset(f); read(f,s); closefile(f); ShowMessage(s);