Есть странный проект Access, где найти эту строку:
strUserName = String$(39, 0)
Какие String$
средства?
Есть странный проект Access, где найти эту строку:
strUserName = String$(39, 0)
Какие String$
средства?
Что Строка $ означает?
String$()
означает почти то же самое, как String()
, но String()
может принимать и возвращать Variant и String$()
не может.
Например, String()
будет принимать Null для символов аргумента и возвращать Null ...
? String(5, Null)
Null
Но подставляя String$()
для String()
вызывает ошибки 94, "Недопустимое использование". ..
? String$(5, Null)
Что касается вашего примера ... String$(39, 0)
..., который возвращает строку из 39 нуль-байтовых символов (Chr(0)
), которая не совпадает с Null.
Не следует ли, когда это возможно, использовать «строго типизированные» (или это * строчные *?) Версии? Это не похоже на то, что Null слишком распространен в VBA .... 'String $', 'Left $', 'Mid $' все работают со строками и не несут неявные преобразования типов, тогда как 'String',' Left' , 'Mid' [и другие] (https: // github.com/rubberduck-vba/Rubberduck/issues/407 # issuecomment-143100088) работают с неявным 'Variant', часто без dev даже замечая. В принципе, [это хорошая идея?] (Https://cloud.githubusercontent.com/assets/5751684/10116083/ca37b650-63f2-11e5-860b-42f8103533ff.png) –
Я думаю, что это зависит от контекста, Матем. С такими фиксированными, известными аргументами, как в примере OP, 'String $ (39, 0)' не имеет никакого преимущества перед 'String (39, 0)', насколько я могу видеть. Если аргументы были переменными, случай для 'String $()' мог бы быть более сильным. В любом случае, я не собирался защищать друг друга ... просто объясните * «что означает String $» *. :-) – HansUp
Это встроенная функция, как правило, используется без $
:
String(number, character)
Она возвращает строку с <number>
символов.
E.g. String(5, "A")
-> AAAAA
Очевидно, вы также можете использовать код Ascii для character
, поэтому ваш пример возвращает 39 * Chr (0).
строка означает строку длиной х символов у, поэтому строка (5,33) = "!!!!!", то будет 39 CHR (0) 's
Я думаю, что «String» относится к типу значения, а «$» - это ссылка на целевую конкретную информацию (т. Е. В ячейке 39,0). Таким образом, это может означать ... получить значение в ячейке 39,0 и интерпретировать его как строку для инициализации имени пользователя. Строка обычно относится к типу, основанному на символах, который удобен для хранения слов, предложений, ... – floppy12
Строка означает строку длины x символа y, поэтому строка (5,33) = "!!!! ! ", thats 39 chr (0) 's –
Возможный дубликат [в чем смысл знака доллара после имени метода в vb.net] (http://stackoverflow.com/questions/8341524/what-is- значение-of-the-dollar-sign-after-a-method-name-in-vb-net) – Chrismas007