- 1
- 2
- 3
- 4
- 5
- 6
- 7
recordSize=logicalRecordLength;
BytesToRead=cnt*recordSize;
records=cnt;
while ( ((pos + BytesToRead)>dataSize)&&records )
{
BytesToRead = --records * recordSize;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+136
recordSize=logicalRecordLength;
BytesToRead=cnt*recordSize;
records=cnt;
while ( ((pos + BytesToRead)>dataSize)&&records )
{
BytesToRead = --records * recordSize;
}
Не думал, что у нас в коде встречу нечто явно похожее на пример №2 из статьи "Индусский код" на Луркморе.
Ну и стоит добавить, что реально logicalRecordLength всегда равен 1.
+108
...
var
fileName :string; // имя файла
mes :string; // текст мессаги
capt :string; // заголовок мессаги
f :thandle;
fils :integer;
BytesRead :D WORD;
c :byte;
begin
writeln('enter filename:'); // просим ввести имя файла
readln(fileName); // в fileName заносим имя файла
if not fileexists(fileName) then // если он несуществует
begin
writeln('file not found :( '); // виводит предупреждение
readln;
exit; // закриваем прогу
end;
writeln(''); // просим ввесли текст мессаги
writeln('enter message text (max 10):'); // максмальна длина 10 символов(так как в Project1.exe для нее зарезирвировано 10 байт) потому что длина HelloWorld=10
readln(mes);
writeln(''); // просим ввести заголовок мессаги
writeln('enter message caption (max 10):'); // опять максимальная длина 10 символов
readln(capt);
f:=fileopen(fileName,fmOpenReadWrite); // откриваем fileName
fils:=Windows.GetFileSize(f,nil); // получаем размер
writeln('size = '+inttostr(fils)+'b'); // виводим размер
// патчим байти для мессаги
// $2848,$2849,$284A,$284B,$284C,$284D,$284E,$284F,$2850,$2851
c:=ord(char(pchar(mes[1]))); // патчим первий байт
SetFilePointer(f, $2848, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[2]))); // патчим второй (2) байт
SetFilePointer(f, $2849, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[3]))); // патчим 3 байт
SetFilePointer(f, $284A, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[4]))); // патчим 4 байт;
SetFilePointer(f, $284B, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[5]))); // патчим 5 байт
SetFilePointer(f, $284C, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[6]))); // патчим 6 байт
SetFilePointer(f, $284D, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[7]))); // патчим 7 байт
SetFilePointer(f, $284E, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[8]))); // патчим 8 байт
SetFilePointer(f, $284F, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[9]))); // патчим 9 байт
SetFilePointer(f, $2850, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(mes[10]))); // патчим 10 байт
SetFilePointer(f, $2851, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
// патчим байти для заголовка мессаги
// адреса с $283C до $2845
c:=ord(char(pchar(capt[1]))); // патчим первий байт
SetFilePointer(f, $283C, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(capt[2]))); // патчим второй байт
SetFilePointer(f, $283D, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(capt[3]))); // третий символ и так дальше
SetFilePointer(f, $283E, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(capt[4])));
SetFilePointer(f, $283F, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
c:=ord(char(pchar(capt[5])));
SetFilePointer(f, $2840, nil, 0);
WriteFile(f, c, SizeOf(c), BytesRead, nil);
...
Где-то нашёл =(
+152
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
template<typename T> class myVector {
private:
T* data; // Указатель на массив с данными
int count; //Кол-во элементов в векторе
T maxv, minv; // Максимальный и минимальный элементы
void quicksort(T a[], const int& leftarg, const int& rightarg) const // Сортировочка
{
if (leftarg < rightarg) {
T pivotvalue = a[leftarg];
int left = leftarg - 1;
int right = rightarg + 1;
for(;;) {
while (a[--right] > pivotvalue);
while (a[++left] < pivotvalue);
if (left >= right) break;
T temp = a[right];
a[right] = a[left];
a[left] = temp;
}
int pivot = right;
quicksort(a, leftarg, pivot);
quicksort(a, pivot + 1, rightarg);
}
}
public:
myVector() : count(0), data(0), maxv(0), minv(0) // Я хз какие дефолтные значения задавать maxv и minv
{
}
~myVector() //Деструктор
{
if (data)
delete [] data;
}
void operator<<(const T &Value) //Оператор для добавления элемента в вектор
{
data = (T*)realloc(data, ++count * sizeof(T));
data[count-1] = Value;
if (maxv < Value) // Чтобы не искать максимальный и минимальный элемент, чекаем значение при добавлении в массив
maxv = Value;
else
if (minv > Value)
minv = Value;
}
T& operator[](const int &Index)//Оператор [] для доступа по индексу
{
if (Index >= count) throw 1;
return data[Index];
}
void orderAsc(T *result) const //Сортировка по возрастанию
{
if (!data) throw 1;
memcpy(result, data, sizeof(T) * count);
quicksort(result, 0, count - 1);
}
void orderDesc(T *result) const
{
if (!data) throw 1;
memcpy(result, data, sizeof(T) * count);
quicksort(result, 0, count - 1);
int swap, b = count;
for(int a = 0; a < --b; a++) {
swap = result[a]; result[a] = result[b]; result[b] = swap;
}
}
T max() const
{
if (!data) throw 1;
return maxv;
}
T min() const
{
if (!data) throw 1;
return minv;
}
};
int main()
{
myVector<int> v;
for (int i = 0; i < 10; i++)
v << rand() % 100; // Заполняем рандомными элементами
for (int i = 0; i < 10; i++)
printf("%d ", v[i]); // Выводим их
printf("\n");
int *arr = new int[10];
v.orderAsc(arr); //Сортируем по возрастанию
for (int i = 0; i < 10; i++)
printf("%d ", *(arr + i)); //Выводим результат
printf("\n");
v.orderDesc(arr); //Сортируем по убыванию
for (int i = 0; i < 10; i++)
printf("%d ", *(arr + i));//Выводим результат
printf("\n%d\n%d", v.max(), v.min()); //Выводим максимальный и минимальный элементы
delete [] arr;
}
Типа вот внезапно так захотелось создать простейший класс вектора. До STL-ного далеко
+164
$black = imagecolorallocate($img, 255, 255, 255);
Не совсем говнокод, конечно, но все же.
+159
<script LANGUAGE="JavaScript">
<!--
function checkEmailAddress(email) {
var allowedChars = ".-_@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var numberAt = 0;
var indexAt = -1;
var thisChar = "";
if (email == "")
return 0;
for(j=0 ; j <= email.length ; j++) {
thisChar = email.substring(j,j+1);
if (allowedChars.indexOf(thisChar) == -1) {
return 0;
}
if (thisChar == "@") {
if (j == 0 || j >= email.length - 3 || numberAt > 0)
return;
numberAt++;
indexAt = j;
}
}
if (numberAt != 1)
{
return 0;
}
if (email.substring(indexAt+1).indexOf(".") <= 0)
return;
for (j=0; j < email.indexOf("@"); j++) {
if (allowedChars.indexOf(email.substring(j,j+1)) >= 4) // Email address is correct!!
return 1;
}
return;
}
В данный момент используется в зарубежном SaaS-решении
+161
// говнецо терпимое
...
//говнецо зачетное:
case 'error':
$error=array();
if (!empty($_POST))
{
$login=mysql_escape_string(stripslashes(trim($_POST['name'])));
$text=mysql_escape_string(stripslashes(trim($_POST['text'])));
if (empty($login))
$error['empty']='Ошибка. Возможные причины: Логин';
if (empty($text))
$error['empty']='Ошибка. Возможные причины: комментарий';
$select = mysql_query("SELECT `id` FROM `blog`");
while ($row_id = mysql_fetch_array($select))
{
if (!$row_id == $_GET[id_news])
{
echo 'нет такойва id новости';
}
}
break;
// дальше говнецо
if (!$row_id == $_GET[id_news]) //гениально, оригинал http://forum.wen.ru/?p=3&f=6&t=365157
+172
function getCodeByCode(code)
хорошее название функции
+114
private void cmnuEdit_Click(object sender, EventArgs e)
{
if (gridView1.FocusedRowHandle >= 0)
SelRowPosition = Convert.ToInt16(gridView1.FocusedRowHandle);
if (gridView1.GetSelectedRows().Count()>0)
{
UserGroupAddEdit uae = new UserGroupAddEdit(gridView1.GetSelectedRows()[0]);
uae.ShowDialog();
Fill();
}
else
{
MessageBox.Show(CommonWinForms.Resources.ResourceErrorMessages.PleaseSelectItem);
}
}
Редактирование записи в гриде по индексу строки, после пересортировки индех остаётся прежним ;)
+164
$tr = "<tr>";
$td = "<td>";
$_tr = "</tr>";
$_td = "</td>";
$table = "<table>";
$_table = "</table>";
echo ("<table border='1'>");
while ($myrow = mysql_fetch_array ($result))
{
printf ("%s",$tr);
foreach ($myrow as $value)
{
printf ("%s%s%s",$td,$value,$_td);
};
printf ("%s",$_tr);
};
echo ("</table>");
+79
private void getCurrentBranch();
public TDictBranch getCurrentBrach();
public TDictBranch2 getCurrentBrach2();
public TDictBranch2 getCurrentBrach2(Date lookupDate);
public String getCurrentBrachId();
public String getCurrentBrunchCode();
public static String getCurrentBranchCharId();
некоторые методы из класса конфигурации приложения