小编Jos*_*ley的帖子

两对多数据关系应该被视为多对多吗?

我有2个数据库表:团队和游戏.

出于这个问题的目的,我们正在处理足球(足球)队和比赛.

每场比赛都有2支球队,通常是主队和客队,尽管偶尔两支球队都可以保持中立.

我的问题是我是否应该使用Games表中的2个外键(home_team_id,away_team_id)表示这种数据关系,或者我是否应该使用与games_teams表的多对多关系来链接这两者,在这种情况下我需要还可以存储球队是主队还是客队,看起来有点矫枉过正.

为了增加混乱,我在KohanaPHP中使用ORM库,这些期望fk被称为team_id或链接表只包含2列.如果您在KohanaPHP遇到此问题,请留下回复,否则任何一般性建议也非常感谢.

php mysql database kohana foreign-key-relationship

3
推荐指数
2
解决办法
1271
查看次数

在GCC处理LPDWORD,LPSTR

我有一个使用LPDWORD,DWORD等的C++程序.当我使用GCC编译时,它会抛出一个错误.如何在GCC中处理LPDWORD,DWORD,LPBYTE和LPTSTR?

c++ gcc types

3
推荐指数
2
解决办法
4780
查看次数

正则表达式找到所有文本句子?

我一直在尝试用python自学Regexes,我决定打印出文本的所有句子.我一直在修补过去3个小时的正则表达无济于事.

我只是尝试了以下但无法做任何事情.

p = open('anan.txt')
process = p.read()
regexMatch = re.findall('^[A-Z].+\s+[.!?]$',process,re.I)
print regexMatch
p.close()
Run Code Online (Sandbox Code Playgroud)

我的输入文件是这样的:

OMG is this a question ! Is this a sentence ? My.
name is.
Run Code Online (Sandbox Code Playgroud)

这不打印任何输出.但是当我删除"我的.名字是."时,它打印OMG这是一个问题,这是一个句子,就像它只读取第一行一样.

什么是正则表达式的最佳解决方案,可以找到文本文件中的所有句子 - 无论句子是否进入新行 - 或者也读取整个文本?谢谢.

python regex

3
推荐指数
2
解决办法
2万
查看次数

打开PDF文件并在那里搜索名称

我有一个PDF文件.我想在那里搜索名字.

  1. 如何打开PDF并使用Ruby获取所有文本?
  2. 是否有任何算法可以找到名字?
  3. 我应该使用什么作为搜索引擎:Sphinx或更简单的东西(只是LIKE SQL查询)?

ruby pdf algorithm search ruby-on-rails

3
推荐指数
1
解决办法
2878
查看次数

StretchBlt 打印失败

我有一个图表(位图格式),我正在尝试使用StretchBlt. 绘制到屏幕时,StretchBlt效果很好。当绘制到一个 CutePDF 打印机时,它返回 0,将最后一个错误设置为ERROR_INVALID_HANDLE,并且仍然可以工作。在 PDF995 打印机或物理 HP 打印机上绘图时,它返回 0,将最后一个错误设置为ERROR_INVALID_HANDLE,并且无法绘制任何内容。

什么会导致StretchBlt某些设备失败?我已经验证源位图是 DIB 并且目标支持StretchBlt通过调用GetDeviceCaps.

这是我的代码,以防万一它是相关的:(它是用 C++Builder 编写的,所以它使用 Delphi 的 VCL;TCanvas 包装了一个 HDC,而 TBitmap 包装了一个 HBITMAP。VCL 提供了它自己的StretchDraw函数,它不支持 HALFTONE;我得到了同样的问题。)

void PrettyStretchDraw(TCanvas *dest, const TRect& rect, TGraphic *source)
{
  if (dynamic_cast<Graphics::TBitmap*>(source) && !source->Transparent) {
    POINT pt;
    GetBrushOrgEx(dest->Handle, &pt);
    SetStretchBltMode(dest->Handle, HALFTONE);
    SetBrushOrgEx(dest->Handle, pt.x, pt.y, NULL);
    StretchBlt(
      dest->Handle,
      rect.Left,
      rect.Top,
      rect.Width(),
      rect.Height(),
      dynamic_cast<Graphics::TBitmap*>(source)->Canvas->Handle,
      0,
      0,
      source->Width,
      source->Height,
      SRCCOPY);
  } else …
Run Code Online (Sandbox Code Playgroud)

printing winapi gdi

2
推荐指数
1
解决办法
1848
查看次数

C++ Builder/Delphi中未初始化的内存

Delphi中的未初始化变量是否保证具有任何特定值

  • 在堆栈上?
  • 在堆上?

由于C++ Builder一般遵循Delphi的设计,因此C++ Builder中未初始化的变量保证具有任何特定的价值

  • 在堆栈上?
  • 在堆上,对于从TObject派生的类的成员变量?
  • 在堆上,对于POCO的成员变量?

我继承了一些C++ Builder代码,这些代码很大程度上取决于成员变量的零初始化,并试图弄清楚语言是否能保证这一点.

当Windows首次被提供给程序的堆栈或堆时,Windows是否保证内存是零初始化的?(编辑:我意识到程序会在执行时覆盖内存,所以它不能继续依赖于此;我只是想弄清楚我观察到的行为.)

delphi initialization c++builder

2
推荐指数
1
解决办法
1247
查看次数

测试感知性能

我最近有一个闪亮的新开发工作站.这样做的唯一缺点是我正在开发的桌面应用程序现在运行得非常非常快,因此我担心在我的测试过程中,在最终用户的机器上会令人烦恼的部分代码会被忽视.

有没有一种减慢测试应用程序的好方法?我试着摸索,但所有的结果我已经能够找到的似乎很繁琐的设置(例如,手动设置高优先级的CPU绑定的任务在同一个CPU核心为目标的应用程序,或者运行快速的中断及恢复的目标应用程序后台进程),我不知道最终的结果实际上是一个较慢的计算机上运行的良好表现(其较慢的CPU,RAM慢,慢的磁盘I/O. ..).

我不认为这是一个剖析器的工作; 我对用户对端到端性能的感知感兴趣,而不是对特定操作的时间感兴趣.

performance user-experience

2
推荐指数
1
解决办法
188
查看次数

外部变量的问题

我有2个cpp文件和一个头文件,我已经包含在两个cpp文件中.就像这样:

abc.h

extern uint32_t key;
Run Code Online (Sandbox Code Playgroud)

a.cpp

#include "abc.h"
uint32_t key;
int main
{
.............
}
Run Code Online (Sandbox Code Playgroud)

b.cpp

#include "abc.h"

int main
{
printf("Key: %.8x\n", key);
.............
}
Run Code Online (Sandbox Code Playgroud)

现在当我编译a.cpp时,没有错误.但是当我编译b.cpp时,它会给出错误"对'key'的未定义引用".请帮我找到这段代码中的问题.

c++ variables extern

2
推荐指数
1
解决办法
4696
查看次数

将Delphi转换为Borland C++构建器

如何转换此Delphi代码:

const
  cnCursorID1 = 1;
begin
  Screen.Cursors[ cnCursorID1 ] :=
    LoadCursorFromFile(
      'c:\winnt\cursors\piano.ani' );
  Cursor := cnCursorID1;
end;
Run Code Online (Sandbox Code Playgroud)

到C++ Builder

delphi animation c++builder cursor

2
推荐指数
1
解决办法
887
查看次数

什么可能导致C++ Builder/Delphi线程和应用程序无法关闭?

有一次,在测试期间,我的C++ Builder/Delphi应用程序在后台工作线程中引发了一个未捕获的异常. EurekaLog发现异常并发送了错误报告,正如我预期的那样,一切似乎都没问题.

但是,当我关闭应用程序的主窗口时,某些内容仍在后台运行,因为应用程序仍然列在任务管理器中(并且仍然打开了资源).

我试图通过故意在后台工作线程中引入各种错误来复制这个问题,但我不能.

什么可能导致一个线程和应用程序保持这样运行,即使在主窗口关闭后(并且,可能是,已调用PostQuitMessage)?

如何确保应用程序始终完全关闭?

windows delphi multithreading shutdown c++builder

2
推荐指数
1
解决办法
445
查看次数

TWebBrowser和ProcessMessages

与TWebBrowser工作示例代码通常插入一个循环调用Application.ProcessMessages,直到ReadyStateREADYSTATE_LOADED.

例如,从Embarcadero论坛,一些代码将HTML字符串加载到TWebBrowser:

mWebBrowser->Navigate(L"about:blank");
while (mWebBrowser->ReadyState< READYSTATE_LOADED)
   Application->ProcessMessages();

// load mWebBrowser from TStreamAdapter
Run Code Online (Sandbox Code Playgroud)

据我了解,调用ProcessMessages是有风险的,因为它可能会产生重入问题.(例如,如果用户单击表单上的"关闭"按钮,则该消息可以由ProcessMessages处理,这样当函数返回时,TWebBrowser实例甚至不再存在.)

我理解正确吗?

如果是这样,是否有一种"安全"的方式来处理TWebBrowser处理消息的需求,而没有ProcessMessages的风险?或者我是否需要将我的所有TWebBrowser代码重新设计为异步?

delphi c++builder twebbrowser

2
推荐指数
1
解决办法
350
查看次数

是否可以在C++中创建"朋友类"?

我知道可以在C++中创建一个友元函数:

class box
{
friend void add(int num);
private:
int contents;
};

void add(int num)
{
box::contents = num;
return;
}
Run Code Online (Sandbox Code Playgroud)

但有没有办法创建朋友类?

注意:我知道这段代码中可能存在很多错误,我不使用友元函数,而且对语言来说还是新手; 如果有,请告诉我.

c++ class

1
推荐指数
1
解决办法
487
查看次数

binary_function中的C++分段错误

我正在使用Visual Studio 2010 Beta 2(也尝试使用NetBeans),我在以下代码中遇到了分段错误:

// One of the @link s20_3_3_comparisons comparison functors@endlink.
template <class _Tp>
struct less : public binary_function<_Tp, _Tp, bool>
{
  bool
  operator()(const _Tp& __x, const _Tp& __y) const
  { return __x < __y; }                          //this is the problem line
};
Run Code Online (Sandbox Code Playgroud)

我不知道我的程序中有什么叫它,但我想知道.(我认为这是一张地图)有谁知道该怎么做,或者之前遇到过这个?

c++ stl segmentation-fault

0
推荐指数
1
解决办法
319
查看次数