The code
69 отговора
2784 прегледа
Re: The code
коя ви е любимата цигания на Ц++? моята е, че като шляпаш темплейти трябва да внимаваш със > скобите, че да не ошашавиш компилатора, който си има отделно мнение за >> оператора
Пък моята любима цигания на C-пляс-пляс също е свързана с начина му на парсване... Ето я - например, искам да конструирам обект от някакъв мой си клас, обаче не с default конструктора му:
MyVectorClass obj(MyIterator(it1), MyIterator(it2));
...и си мисля че съм готов... обаче нанайци :)
Можете ли да се сетите какъв е резултата вместо това?
Пък моята любима цигания на C-пляс-пляс също е свързана с начина му на парсване... Ето я - например, искам да конструирам обект от някакъв мой си клас, обаче не с default конструктора му:
MyVectorClass obj(MyIterator(it1), MyIterator(it2));
...и си мисля че съм готов... обаче нанайци :)
Можете ли да се сетите какъв е резултата вместо това?
Редактирано от Pesho® на
Re: The code
МФЦ и КОМ имплементациите на сериализация обаче са, меко казано, противни - ако знаеш други - моля те светни ме, че да си улесня живота в бъдещето
Ето тук:
[линк]
(трябва да се join-неш към yahoo-групата, of corpse)
P.S. Sorry ако развалям хубавия флейм
Ето тук:
[линк]
(трябва да се join-неш към yahoo-групата, of corpse)
P.S. Sorry ако развалям хубавия флейм
Re: The code
Веднъж написах нещо такова:
int i = 3; // skip x:\
for(незнамсикво) и така нататък
обаче backslash-a и новото редче са line continuation sequence и for-а отиде та се не видя.
Бях чел предупреждение за подобен ефект, обаче не съм вярвал, че може да падна в капана.
int i = 3; // skip x:\
for(незнамсикво) и така нататък
обаче backslash-a и новото редче са line continuation sequence и for-а отиде та се не видя.
Бях чел предупреждение за подобен ефект, обаче не съм вярвал, че може да падна в капана.
как не те досрамя...
Ауууу, какъв голям проблем били водещите нули. Абе пич, като не ставаш за програмист - поне си трай...
String s = Integer.toHexString(i);
"0000000".substring(s.length()) + s //leading zeros to 7 digits
String s = Integer.toHexString(i);
"0000000".substring(s.length()) + s //leading zeros to 7 digits
Яко :-)
Не съм свикнал да мисля в тия термини, ще го използвам.
Ето, засрамих се :-)
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Ето, засрамих се :-)
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
P.S.
М/у другото ти като ставаш за програмист да бе сложил(а) 8 нули вместо 7.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Re: как не те досрамя...
на ц става по-готино :)
char szNum[10];
char szResult[] = "0000000000";
_itoa(n, szNum, 16);
strcpy(szResult + 10 - strlen(szNum), szNum);
char szNum[10];
char szResult[] = "0000000000";
_itoa(n, szNum, 16);
strcpy(szResult + 10 - strlen(szNum), szNum);
Re: как не те досрамя...
sprintf?
_itoa май е майкрософтска екстензия и я няма навсякъде
при мен например няма:
[null@muslon null]$ man _itoa
No manual entry for _itoa
[null@muslon null]$ man itoa
No manual entry for itoa
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
_itoa май е майкрософтска екстензия и я няма навсякъде
при мен например няма:
[null@muslon null]$ man _itoa
No manual entry for _itoa
[null@muslon null]$ man itoa
No manual entry for itoa
--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Re: The code
Хмм ? Някъде скоро имаше топик как програмистите на високо ниво трябвало непременно да знаят какво става на ниско ниво като пишат код. Това тука е точен пример на обратното. Като имаш АПИ (Жаба, .НЕТ), ползвай го. .НЕТски код за твоя проблем изглежда така (8 водещи нули):
int intValue = 80; // примерно.
string hexString = intValue.ToString("X8");
В Жаба не може да няма нещо от сорта (форматтинг синтаксис), понеже това нещо идва от С още.
int intValue = 80; // примерно.
string hexString = intValue.ToString("X8");
В Жаба не може да няма нещо от сорта (форматтинг синтаксис), понеже това нещо идва от С още.
Стига глупости
Аз псувам Жаба, не .нет. При него всичко е наред. Няма такова API в Жаба.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
See package java.text
import java.text.*;
class test {
public static void main(String args[]) {
DecimalFormat df = new DecimalFormat("0000000000");
System.out.println(df.format(1));
System.out.println(df.format(11));
System.out.println(df.format(111));
}
}
class test {
public static void main(String args[]) {
DecimalFormat df = new DecimalFormat("0000000000");
System.out.println(df.format(1));
System.out.println(df.format(11));
System.out.println(df.format(111));
}
}
Re: See package java.text
така става най-лесно:
import IncredibleLanguage.UnbelievableModule.*;
DreamObject objTest = new DreamObject(MyMind);
String result = objTest .DoWhatIThink("Convert number to hex string with leading zeros", number);
Колко лесен би бил живота, а?
import IncredibleLanguage.UnbelievableModule.*;
DreamObject objTest = new DreamObject(MyMind);
String result = objTest .DoWhatIThink("Convert number to hex string with leading zeros", number);
Колко лесен би бил живота, а?
Редактирано от Resurrector на
Какво се предполага да прави това?!?
Аз исках функция, дето да й дам int, тя да ми върне hex String с водещи нули (дължина 8). Вече дадоха доста елегантно решение на 2 реда ( макар вероятно доста неефективно ). Да има някъде клас HexadecimalFormat?
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Re: и защо да са проблем?
не си ме разбрал правилно - имах предвид ако НЕ ползваш принтф че е по-лесно с водещи нули. ето:
void conv(int v,int n,char *result){// v- вход, n-брой цифри,result изходен стринг
for(int i=0;i<n;i++){
result[n-1-i]=v%10+'0';
v/=10;
}
char[n]=0;
}
докато без водещи нули е доста по-трудно, пробвай.
void conv(int v,int n,char *result){// v- вход, n-брой цифри,result изходен стринг
for(int i=0;i<n;i++){
result[n-1-i]=v%10+'0';
v/=10;
}
char[n]=0;
}
докато без водещи нули е доста по-трудно, пробвай.
До колкото виждам оригиналния код прави същото.
И също доколкото виждам това, дето го искаш го няма реализирано все още. :-) Все пак става въпрос за локализация и числата се показват само в десетично или експоненциално изписване.
Явно на никой не му е трябвало, за да повдигне въпроса. Има Джава Комюнити Процес и там всеки си казва, какво иска и най-исканите неща влизат в следващата версия. :-)
А онова решение с 2-та реда освен, че е елегантно, е и бързо. Това форматиране не е особено бързо в Джава пък и то се използва за локализация. Предполагам, че вместо DecimalFormat можеш да ползваш TextFormat и разбира се да му подадеш низа от първия ред на колегата. Но това си е пак хак. Решението е да се добави съответния форматиращ символ с класа, който аз използвах. Ама дали ще стане и кога ще стане е една друга тема.
Явно на никой не му е трябвало, за да повдигне въпроса. Има Джава Комюнити Процес и там всеки си казва, какво иска и най-исканите неща влизат в следващата версия. :-)
А онова решение с 2-та реда освен, че е елегантно, е и бързо. Това форматиране не е особено бързо в Джава пък и то се използва за локализация. Предполагам, че вместо DecimalFormat можеш да ползваш TextFormat и разбира се да му подадеш низа от първия ред на колегата. Но това си е пак хак. Решението е да се добави съответния форматиращ символ с класа, който аз използвах. Ама дали ще стане и кога ще стане е една друга тема.
ако това е вярно, от утре ставам жабар!
наистина ли сериализацията е толкова лесна? аз не съм писал много на джава, само преди 4 години малко пробвах, но аз принципно не мога да си представя концепция която сериализира ВСИЧКО. как се сериализират референсите/ указателите? ясно е какъв е проблема с тях - ако ги запишеш във файл, то нищо не суи направил, защото при следващото зареждане обектите сочени от тях имат други адреси. ако джавата можа да го прави автоматично, ще ми се издигне в очите. но дори да се оправя с референсите (нали така им викат на указателите там), пак не може сериализацията да става напълно автоматично.
Re: ако това е вярно, от утре ставам жабар!
Е ти джаварите за идиоти ли ги мислиш бе пич?
То и на дот нет сериализаията става с няколко тага, даже е далеч по-гъвкава.
То и на дот нет сериализаията става с няколко тага, даже е далеч по-гъвкава.
Re: ъъъ, да не би тива чудо да добавя водещи нули?
Opredeleno ima mnogo svetnati hora mezdu tiah. Poznavam niakolko takiva koito evala im pravia, no masata sa takiva kato tozi deto e pisal code-a po-gore.
No pak kato se zamisli chovek che sa blizo 1miliard mai taka i triabva da e :)
No pak kato se zamisli chovek che sa blizo 1miliard mai taka i triabva da e :)
Re: ако това е вярно, от утре ставам жабар!
Нали си говорихме в оная другата тема за рефлексията - ако имаш рефлексия, имаш автоматична сериализация.
Ние правим така (на С++):
автоматично се сериализират само обекти, наследници на ISerializable (само че нашия се казва IPersistent);
като се опиташ да запишеш такъв указател, проверяваш дали този обект (който в момента на записването се идентифицира уникално по IPersistent* указателя си) вече е бил записван; ако не е бил записван, записваш типа му, целия обект и му даваш номерче, ако е бил записван, записваш само номерчето. Така нещата после могат да се прочетат обратно, и да се възстановят правилно указателите (като граф), макар че адресите им да са съвсем разбъркани.
Ние правим така (на С++):
автоматично се сериализират само обекти, наследници на ISerializable (само че нашия се казва IPersistent);
като се опиташ да запишеш такъв указател, проверяваш дали този обект (който в момента на записването се идентифицира уникално по IPersistent* указателя си) вече е бил записван; ако не е бил записван, записваш типа му, целия обект и му даваш номерче, ако е бил записван, записваш само номерчето. Така нещата после могат да се прочетат обратно, и да се възстановят правилно указателите (като граф), макар че адресите им да са съвсем разбъркани.
Re: Защо?
Не виждам причини да мисля така. Хората сигурно идват от някое село в което наскоро са прекарали ток, но имат желание да направят живота си по добър и полагат усилия да се усъвършенстват. За тях сигурно и това да станат шофьори на такси не е било лесно. А тук (нация техническа уж) някои хора висят с години в разни вузове, излизат от там и хленчат че нищо не могат защото образователната система била лоша. И аз съм писал глупости докато съм бил млад и некадърен, но съм се старал и сега не съм толкова зле.