перевірити GUID
GUID отримую так:
Function TForm1.GuNewGuid: string;
var ID: TGUID;
begin
Result: = ""; if CoCreateGuid (ID) = S_OK then Result: = GUIDToString (ID);
end;
Питання: Припустимо GUID вводиться вручну, через edit, є якась функція в Дельфах, яка може перевірити, евляется введений текст коректним GUID (НЕ дублікат в системі, а саме корретнтность введення, дужки там, 16і ковий симолів і їх вірне кількість і дефіси )?
> GUID отримую так:
НЕ Гуїдо, а строкове представлення.
якби Гуїдо, то після введення "через edit" тобі довелося б конвертувати, і питання про перевірку би не виник.
питання не про це
Вам би все готову функцію, функція додати одиницю, функція додати дві одиниці.
взяти введене.
згенерувати нормальний Гуїдо, перетворити в рядок.
з обох рядків видалити ціфриі літери.
якщо після цього рядка збіглися, значить введений вірний Гуїдо.
спосіб для тих хто не хоче знати про регулярки або маски
> Питання не про це
саме про це. конвертація введеного до природного типу одночасно є і перевіркою на вірність. тобто якщо правильно використовувати, то нічого більше не потрібно. але, блін, ваше постійне нецільове використання. (Чи не від тебе чи тут було про дати в Ексель? І типу "я все знаю що дата число, але чому." Казка про білого бичка. Не закінчується, не помре.)
p.s. не сперечаюся, іноді потрібно, але блін, той хто здатний вирішити що "ось це, то саме, іноді", той розуміє і значить не задає подібних питань.
> Спосіб для тих хто не хоче знати про регулярки або маски
имхо, для тих хто не читає доку, а винаходить велосипеди. до знаючих регулярки теж відноситься.
If StringToGUID succeeds it returns the requested GUID. If StringToGUID fails an EConvertError exception is raised.
> Евляется введений текст коректним GUID
кому і для чого є необхідність вводити (і взагалі знати) будь-якої Гуїдо?
А він, наприклад, читає з файлу. і, відповідно, хочеться зрозуміти - він прочитав коректну рядок, або там сміття.
2 Дмитро Белькевич, Юрій Зотов - угу, так норм.работает:
Function isStrGUIDOk (GuidStr: string): bool;
begin
Result: = false;
Try
StringtoGuid (GuidStr); Result: = true;
Except
Showmessage ( "GUID некоректно");
End;
End;
if not isStrGUIDOk (edit1.text) then exit;
Gu # XA0; (27.06.11 21:26) [17]
Ти пиши, пиши, пиши,
Вигадуй весь вік,
Тому що пародист -
Теж людина.
Він не хоче затягнути
Тугіше поясок.
Для нього твої вірші -
Хлібця шматок.
Ти пиши і мій заклик
Чи не порахує за лестощі,
Тому що пародист
Теж хоче їсти!