- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
private void OutputLabels(DataTable dt)
{
string label;
// Iterate rows of table
foreach (DataRow row in dt.Rows)
{
int labelLen;
label = String.Empty;
label += AddFieldValue(label, row, "Title");
label += AddFieldValue(label, row, "FirstName");
label += AddFieldValue(label, row, "MiddleInitial");
label += AddFieldValue(label, row, "LastName");
label += AddFieldValue(label, row, "Suffix");
label += "\n";
label += AddFieldValue(label, row, "Address1");
label += AddFieldValue(label, row, "AptNo");
label += "\n";
labelLen = label.Length;
label += AddFieldValue(label, row, "Address2");
if (label.Length != labelLen)
label += "\n";
label += AddFieldValue(label, row, "City");
label += AddFieldValue(label, row, "State");
label += AddFieldValue(label, row, "Zip");
Console.WriteLine(label);
Console.WriteLine();
}
}
private string AddFieldValue(string label, DataRow row,
string fieldName)
{
if (! DBNull.Value.Equals(row[fieldName]))
return (string) row[fieldName] + " ";
else
return String.Empty;
}
label не используется в AddFieldValue. Официальный пример MS - https://docs.microsoft.com/en-us/dotnet/api/system.dbnull.value?view=netframework-4.7.2
roskomgovno 12.07.2018 14:39 # 0
guest8 12.07.2018 15:13 # −999
roskomgovno 12.07.2018 15:15 # 0
use System.Text.StringBuilder, Luke.
ну или List<string> и потом Join какой-гнить
666_N33D135 12.07.2018 15:18 # 0
Чую питониздо
roskomgovno 12.07.2018 15:20 # 0
но лучгше StringBuilder конечно
666_N33D135 12.07.2018 15:23 # +1
ЗЫ. Еси есь сринг буйлдыр, то конешно лутше иго юзать.
roskomgovno 12.07.2018 15:25 # 0
но в жабе и CLR у нас StringBuilder, за свою пткобезопастность в жабе прозванный буфером
666_N33D135 12.07.2018 14:42 # 0
roskomgovno 12.07.2018 14:53 # 0
экономят нескока байт
666_N33D135 12.07.2018 15:02 # 0
или
> чтобы ни пихать в пул строк еще и "", экономят нескока байт
???
roskomgovno 12.07.2018 15:13 # 0
А "" попадет в стат. секцию файла, пул строк.
Разумеется, везде где ты укажешь "" ты получишь ссылку на одну и ту же строку, но в случае String.Empty ты не будешь засирать свой стрингпул лишней строкой.
Кроме того String.isNullOrEmpty наверняка начинается с проверки указателя на равенство с String.Empty, а в случае "" тебе придеца сравнивать строку.
Так что использувая String.Empty ты экономишь несколько тактов CPU и 2 байта (0x00 0x00) в строковом пуле.
так вижу
guest8 12.07.2018 16:37 # −999
roskomgovno 12.07.2018 16:40 # 0
>>Разумеется, везде где ты укажешь "" ты получишь ссылку на одну и ту же строку
guest8 12.07.2018 17:11 # −999
roskomgovno 12.07.2018 18:15 # 0
Стринг пулы есть во всех ЯПах где немутабельные строки: строковые литералы всегда кладутся в волшебное место и все 100500 их упоминаний превращаются в ссылку на них. И в .NET и в сишечке или JVM
guest8 12.07.2018 18:38 # −999
roskomgovno 12.07.2018 18:52 # 0
правда я х3 если это JVM spec или импл. детали OracleJVM/OpenJDK
guest8 12.07.2018 19:09 # −999
guest8 12.07.2018 19:10 # −999
guest8 12.07.2018 19:13 # −999
roskomgovno 12.07.2018 19:28 # 0
а так про это на экзамене по SCJP еще спрашивали в хуйзнает когда году)
guest8 12.07.2018 19:37 # −999
guest8 12.07.2018 19:37 # −999
roskomgovno 12.07.2018 19:38 # 0
да, я когда-то работал в конторе где надо было сдавать)
guest8 12.07.2018 20:04 # −999
guest8 12.07.2018 20:29 # −999
roskomgovno 12.07.2018 20:33 # 0
guest8 12.07.2018 21:20 # −999
guest8 12.07.2018 19:37 # −999
roskomgovno 12.07.2018 19:42 # 0
декомпильни и позырь
guest8 12.07.2018 19:37 # −999
roskomgovno 12.07.2018 19:28 # −1
Если ты билдером соберешь строку "макака" от она не будет равна литералу "макака"
guest8 12.07.2018 19:36 # −999
roskomgovno 12.07.2018 19:42 # −1
System.out.print("пшел в дупу");
Жысон наврядли кто-то интернит, но можно, если ты его 10050 раз грузишь
Тащимт главный смысл пула в том чтобы код
for(int i = 0; i < 100500;i++) {
foo.setBar("pitux");
}
не создал тебе 100500 питухов
guest8 12.07.2018 20:05 # −999
roskomgovno 12.07.2018 20:16 # −1
1) грузим в память сорок две строки "key"
2) получаем те-ле-фун-ке 42 объекта
3) интернируем
4) получаем 1 объект
5) GC за нами чистит
профит
guest8 12.07.2018 20:28 # −999
roskomgovno 12.07.2018 20:34 # −1
Как ты дернешь intern() не разбив яи не создав строки?
kir_rik 12.07.2018 20:51 # 0
roskomgovno 12.07.2018 21:34 # 0
roskomgovno 12.07.2018 15:00 # −1
string.Empty wins in a really corner case, which can lead to some magical bug and really hard to debug:
If there is a zero width space in "".
guest8 12.07.2018 16:34 # −999
vistefan 12.07.2018 16:41 # −1
guest8 12.07.2018 17:09 # −999
roskomgovno 12.07.2018 17:11 # 0
[^\x20-\x7F]
guest8 12.07.2018 17:14 # −999
roskomgovno 12.07.2018 17:16 # 0
ну если конечно система аскисовместима, если это не советский комп который вообще не умеет англ буквы
vistefan 12.07.2018 17:32 # 0
guest8 12.07.2018 17:44 # −999
vistefan 12.07.2018 17:47 # 0
guest8 12.07.2018 17:50 # −999
vistefan 12.07.2018 17:44 # 0
guest8 12.07.2018 17:50 # −999
vistefan 12.07.2018 17:52 # 0
guest8 12.07.2018 17:55 # −999
vistefan 12.07.2018 17:58 # 0
З.Ы. кстати, почитал, для -P grep использует установленный в систему PCRE, так что можно было вообще писать
guest8 12.07.2018 18:00 # −999
guest8 12.07.2018 17:59 # −999
vistefan 12.07.2018 18:02 # 0
roskomgovno 12.07.2018 18:07 # 0
чтите прыщепозикс
LC_COLLATE
This variable determines the locale category for character collation. It determines collation information for regular expressions and sorting, including equivalence classes and multi-character collating elements, in various utilities and the strcoll() and strxfrm() functions. Additional semantics of this variable, if any, are implementation-dependent.
vistefan 12.07.2018 18:13 # 0
guest8 12.07.2018 18:40 # −999
roskomgovno 12.07.2018 18:43 # 0
Extended Regular Expressions сообщает нам
Regular expressions are a context-independent syntax that can represent a wide variety of character sets and character set orderings, where these character sets are interpreted according to the current locale. While many regular expressions can be interpreted differently depending on the current locale, many features, such as character class expressions, provide for contextual invariance across locales.
Так что да, обязан уметь
зы: разумеется, твой TTY должен уметь локаль тоже
guest8 12.07.2018 19:08 # −999
roskomgovno 12.07.2018 19:19 # 0
Твой терминал должен уметь отображать символы в указаенной в локале кодировке. Иначе grep погрепает, а не выходе покажет тебе мусор.
guest8 12.07.2018 19:21 # −999
roskomgovno 12.07.2018 19:23 # 0
guest8 12.07.2018 19:35 # −999
roskomgovno 12.07.2018 19:44 # 0
findstr, вероятно, работает хорошо.
А лучше всего работает Select-String
в помершале
guest8 13.07.2018 02:25 # −999
guest8 13.07.2018 02:26 # −999
guest8 13.07.2018 02:28 # −999
666_N33D135 12.07.2018 18:38 # 0
guest8 12.07.2018 19:15 # −999
guest8 12.07.2018 19:21 # −999
roskomgovno 12.07.2018 19:25 # 0
Кроме кафе бэбе есть еще MZ у PE и ELF у ELF и 55AA у всех BIOS ROMов от карточек всех двух видов до mbr
vistefan 12.07.2018 17:12 # 0
guest8 12.07.2018 17:21 # −999
roskomgovno 12.07.2018 16:43 # 0
vistefan 12.07.2018 16:51 # 0
Строка считается сматченной, если в ней найдено хотя бы одно вхождение паттерна. Не обязательно вся строка матчится как паттерн. -v инвертирует вывод, то есть мы увидим только такие строки, которые ПОЛНОСТЬЮ состоят из символов, не входящих в [a-zA_Z0-9_ ]. Поэтому тебе и выдало питве. Если бы там была e латиницей, строка бы не вывелась.
Задача же, насколько я понял, требует вывести наоборот, все такие строки, где есть хотя бы один non-ascii character, и, желательно, его подстветить.
guest8 12.07.2018 16:53 # −999
vistefan 12.07.2018 16:55 # 0
Приведенный мной греп их подсветит красным цветом и сообщит номер строки.
roskomgovno 12.07.2018 17:01 # 0
кста, это не позиксовая хрень емнип
но GNUный умеет
vistefan 12.07.2018 17:11 # 0
Убедиться, что вот на этой
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html
странице нет слова color достаточно?
roskomgovno 12.07.2018 17:19 # 0
и тут нет
https://man.openbsd.org/grep.1
а тут есть
https://www.gnu.org/software/grep/manual/html_node/Environment-Variables.html#Environment-Variables
guest8 12.07.2018 18:43 # −999
roskomgovno 12.07.2018 19:26 # 0
vistefan 12.07.2018 23:03 # 0
roskomgovno 12.07.2018 16:55 # 0
ps: ой, ты так и сделал же
vistefan 12.07.2018 16:57 # 0