- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
int count(int a)
{
int cnt=0;
while(a)
{
++cnt;
}
return cnt;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+147
int count(int a)
{
int cnt=0;
while(a)
{
++cnt;
}
return cnt;
}
Ф-ция для подсчета количества знаков числа. Взято с www.cyberforum.ru
+147
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <algorithm>
#include <vector>
#include <string>
#define N 5
#define TSK "durak"
using namespace std;
int m[N];
int main(void){
freopen(TSK".in", "rt", stdin);
freopen(TSK".out", "wt", stdout);
scanf("%d%d%d%d", &m[0], &m[1], &m[2], &m[3]);
sort(m, m + 4);
int ans(0);
for(int i = 1; i < 4; i++){
if(m[i] == m[i-1] && m[i] != 0)
ans++;
}
printf("%d\n", ans);
return 0;
}
+159
// TODO: use Virtual memory instead of heap!
#ifndef __CHUNK_H__
#define __CHUNK_H__
#include <windows.h>
#include "../JuceLibraryCode/JuceHeader.h"
class Chunk {
public:
enum CHUNK_DIRECTION {CHUNK_UNKNOWN = 0, CHUNK_IN, CHUNK_OUT};
Chunk (DWORD ChunkSize, WORD id, CHUNK_DIRECTION chunkDirection);
~Chunk ();
// override
virtual void eventChunkIsEmpty () {
Logger::outputDebugString(T("empty"));
}
virtual void eventChunkIsFull () {
Logger::outputDebugString(T("full"));
}
virtual void eventChunkOverrun () {
Logger::outputDebugString(T("overrun"));
}
DWORD getData (WORD *data, DWORD size) {
if (data == 0) return 0;
if (cs.tryEnter ()) { // if it's true, we locked.. (TODO: check, i'm not sure about that)
if (((size + nReadCounter) > nWriteCounter) || size == 0) { cs.exit(); return 0; }
memcpy (data, pBuffer + nReadCounter, size*sizeof(WORD));
nReadCounter += size;
if (nReadCounter == nWriteCounter) { eventChunkIsEmpty() ; nWriteCounter = 0; nReadCounter = 0; }
cs.exit ();
return size;
}
return 0;
}
DWORD putData (WORD *data, DWORD size) {
if (data == 0) return 0;
if (cs.tryEnter ()) { // if it's true, we locked.. (TODO: check, i'm not sure about that)
if ((size + nWriteCounter) > nSize) { eventChunkOverrun(); cs.exit (); return 0; }
memcpy (pBuffer + nWriteCounter, data, size*sizeof(WORD));
nWriteCounter += size;
if (nWriteCounter == nSize ) eventChunkIsFull();
cs.exit ();
return size;
}
return 0;
}
inline DWORD getSize () {
return nSize;
}
// TODO: add check for nWriteCounter?
inline bool setSize (DWORD ChunkSize) {
if (bExchangeIsActive) return false;
nSize = ChunkSize;
// TODO: add result check.
pBuffer = (WORD*) realloc ((void*)pBuffer, ChunkSize*sizeof(WORD));
if (pBuffer) return true;
return false;
}
inline DWORD getReadCounter () { return nReadCounter; }
inline DWORD getWriteCounter () { return nWriteCounter; }
juce_UseDebuggingNewOperator
protected:
bool bExchangeIsActive;
CHUNK_DIRECTION cdDirection;
DWORD nSize;
DWORD nWriteCounter;
DWORD nReadCounter;
WORD nChunkId;
WORD *pBuffer;
CriticalSection cs;
};
#endif
// EOF
#include "Chunk.h"
Chunk::Chunk (DWORD ChunkSize, WORD id, CHUNK_DIRECTION chunkDirection) {
bExchangeIsActive = false;
cdDirection = chunkDirection;
nSize = ChunkSize;
nWriteCounter = 0;
nReadCounter = 0;
nChunkId = id;
pBuffer = (WORD*) malloc (ChunkSize*sizeof(WORD));
zeromem (pBuffer, ChunkSize*sizeof(WORD));
}
Chunk::~Chunk () {
if (pBuffer) free (pBuffer);
}
// EOF
Посвящается всем изобретателям велосипедов и просто неудачникам.. :(
+157
void CVC6_SampleCodeDlg::OnButtonSaveframe()
{
// TODO: Add your control notification handler code here
SYSTEMTIME lpSysTime;
GetLocalTime(&lpSysTime);
long Dims = SafeArrayGetDim(pvBuffer.parray);
if(Dims != 1)
return;
char *pbuf = (char*)malloc(m_FrameSize);
char *pfinal = pbuf;
for(long i=0;i<m_FrameSize;i++)
{
SafeArrayGetElement(pvBuffer.parray, &i, pfinal++);
}
FILE* fSaveFile;
CString saveName;
if(m_vportsdk.GetGetStreamType() == 1)
saveName.Format(".//%d%d%d_%d%d%d.mpg4",lpSysTime.wYear, lpSysTime.wMonth, lpSysTime.wDay,
lpSysTime.wHour, lpSysTime.wMinute, lpSysTime.wSecond);
else if(m_vportsdk.GetGetStreamType() == 2)
saveName.Format(".//%d%d%d_%d%d%d.jpg",lpSysTime.wYear, lpSysTime.wMonth, lpSysTime.wDay,
lpSysTime.wHour, lpSysTime.wMinute, lpSysTime.wSecond);
if((fSaveFile = fopen((LPCTSTR)saveName,"wb"))!=NULL)
{
fwrite(pbuf, 1, m_FrameSize, fSaveFile);
fclose(fSaveFile);
}
SafeArrayUnaccessData(pvBuffer.parray);
delete pbuf;
pbuf = NULL;
}
VPort ActiveX SDK PLUS от Moxa
часть 5. Хватит пока :)
+154
void CVC6_SampleCodeDlg::OnButtonSetpreset()
{
// TODO: Add your control notification handler code here
CComboBox *pCombobox = (CComboBox *) GetDlgItem(IDC_COMBO_PRESETNAME);
CString strPresetName;
GetDlgItem(IDC_EDIT_PRESETNAME)->GetWindowText(strPresetName);
if(strPresetName != "")
m_vportsdk.SavePresetPosition(strPresetName, (pCombobox->GetCurSel()+1));
else{
GetDlgItem(IDC_COMBO_PRESETNAME)->GetWindowText(strPresetName);
m_vportsdk.SavePresetPosition(strPresetName, (pCombobox->GetCurSel()+1));
}
}
VPort ActiveX SDK PLUS от Moxa
часть 4
+155
void CVC6_SampleCodeDlg::OnCHECKForceGDI()
{
// TODO: Add your control notification handler code here
CButton *pBut = (CButton *) GetDlgItem(IDC_CHECK_ForceGDI);
m_vportsdk.SetForceGDI(pBut->GetCheck());
if(pBut->GetCheck() == 0)
m_ForceGDI = false;
else if(pBut->GetCheck() == 1)
m_ForceGDI = true;
}
VPort ActiveX SDK PLUS от Moxa
часть 3
+156
void CVC6_SampleCodeDlg::Onbuttonstartrecord()
{
// TODO: Add your control notification handler code here
CString strFileName, strFileTime, strFileSize, strTemp;
GetDlgItem(IDC_EDIT_filepath)->GetWindowText(strFileName);
GetDlgItem(IDC_EDIT_filetime)->GetWindowText(strFileTime);
GetDlgItem(IDC_EDIT_filelength)->GetWindowText(strFileSize);
GetDlgItem(IDC_button_startrecord)->GetWindowText(strTemp);
m_vportsdk.SetRecordVideoPath(strFileName);
m_vportsdk.SetRecordMaxFileTimeLength(atoi(strFileTime));
m_vportsdk.SetRecordMaxFileSize(atoi(strFileSize));
CComboBox *pRecordType = (CComboBox *) GetDlgItem(IDC_COMBO_recordtype);
if(strTemp == "Start Record"){
if(pRecordType->GetCurSel() == 0)
m_vportsdk.StartRecording(0);
else
m_vportsdk.StartRecording(1);
GetDlgItem(IDC_button_startrecord)->SetWindowText("Stop Record");
}
else{
if(pRecordType->GetCurSel() == 0)
m_vportsdk.StopRecording(0);
else
m_vportsdk.StopRecording(1);
GetDlgItem(IDC_button_startrecord)->SetWindowText("Start Record");
}
}
VPort ActiveX SDK PLUS от Moxa
часть 2
+158
QTextEdit *qte = new QTextEdit();
qte->setHtml(doc->toHtml());
qte->selectAll();
qte->textCursor().mergeBlockFormat(format);
qte->setTextColor(this->getTextForecolor());
doc->setHtml(qte->toHtml());
delete qte;
Задание цвета текста QTextDocument (doc) через анал.
+174
// used to set or reset batch mode
void SetIsBatch(bool bSet)
{
if(bSet)
{
if(m_Chart.GetIsBatched())
return;
else
{
m_Chart.SetIsBatched(TRUE);
}
}
else
{
if(m_Chart.GetIsBatched())
{
m_Chart.SetIsBatched(FALSE);
}
else
return;
}
}
+155
void XmlElementHandler::startElement(
const XMLCh* const uri,
const XMLCh* const localname,
const XMLCh* const qname,
const XERCES_CPP_NAMESPACE_QUALIFIER Attributes& attrs
)
{
static XmlContext *context = XmlContext::getInstance();
static XmlParser *parser = XmlParser::getInstance();
оптимизируем обращения к синглтонам. потому что одной невидимой глобальной переменной явно не достаточно. вот такое щасце в 30+ методах на реализации интерфейса к Xerces-C.