本文整理汇总了C++中LINE_READER::Line方法的典型用法代码示例。如果您正苦于以下问题:C++ LINE_READER::Line方法的具体用法?C++ LINE_READER::Line怎么用?C++ LINE_READER::Line使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LINE_READER
的用法示例。
在下文中一共展示了LINE_READER::Line方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Load
bool SCH_BITMAP::Load( LINE_READER& aLine, wxString& aErrorMsg )
{
char* line = aLine.Line();
if( strncasecmp( line, "$Bitmap", 7 ) != 0 )
{
aErrorMsg.Printf( wxT( "Eeschema file bitmap image load error at line %d, aborted" ),
aLine.LineNumber() );
aErrorMsg << wxT( "\n" ) << FROM_UTF8( (char*) aLine );
return false;
}
for( ; ; )
{
if( !aLine.ReadLine() )
return false;
line = aLine.Line();
if( strncasecmp( line, "Pos", 3 ) == 0 )
{
sscanf( line + 3, "%d %d", &m_pos.x, &m_pos.y );
continue;
}
if( strncasecmp( line, "Scale", 5 ) == 0 )
{
double scale = 1.0;
sscanf( line + 5, "%lf", &scale );
m_image->SetScale( scale );
continue;
}
if( strncasecmp( line, "Data", 4 ) == 0 )
{
m_image->LoadData( aLine, aErrorMsg );
}
if( strncasecmp( line, "$EndBitmap", 4 ) == 0 )
break;
}
return true;
}
示例2: LoadData
bool BITMAP_BASE::LoadData( LINE_READER& aLine, wxString& aErrorMsg )
{
wxMemoryOutputStream stream;
char* line;
while( true )
{
if( !aLine.ReadLine() )
{
aErrorMsg = wxT("Unexpected end of data");
return false;
}
line = aLine.Line();
if( strncasecmp( line, "EndData", 4 ) == 0 )
{
// all the PNG date is read.
// We expect here m_image and m_bitmap are void
m_image = new wxImage();
wxMemoryInputStream istream( stream );
m_image->LoadFile( istream, wxBITMAP_TYPE_PNG );
m_bitmap = new wxBitmap( *m_image );
break;
}
// Read PNG data, stored in hexadecimal,
// each byte = 2 hexadecimal digits and a space between 2 bytes
// and put it in memory stream buffer
int len = strlen( line );
for( ; len > 0; len -= 3, line += 3 )
{
int value = 0;
if( sscanf( line, "%X", &value ) == 1 )
stream.PutC( (char) value );
else
break;
}
}
return true;
}
示例3: Load
bool SCH_SHEET_PIN::Load( LINE_READER& aLine, wxString& aErrorMsg )
{
int size;
char number[256];
char name[256];
char connectType[256];
char sheetSide[256];
char* line = aLine.Line();
char* cp;
static const char delims[] = " \t";
// Read coordinates.
// D( printf( "line: \"%s\"\n", line );)
cp = strtok( line, delims );
strncpy( number, cp, sizeof(number) );
number[sizeof(number)-1] = 0;
cp += strlen( number ) + 1;
cp += ReadDelimitedText( name, cp, sizeof(name) );
cp = strtok( cp, delims );
strncpy( connectType, cp, sizeof(connectType) );
connectType[sizeof(connectType)-1] = 0;
cp = strtok( NULL, delims );
strncpy( sheetSide, cp, sizeof(sheetSide) );
sheetSide[sizeof(sheetSide)-1] = 0;
cp += strlen( sheetSide ) + 1;
int r = sscanf( cp, "%d %d %d", &m_Pos.x, &m_Pos.y, &size );
if( r != 3 )
{
aErrorMsg.Printf( wxT( "Eeschema file sheet hierarchical label error at line %d.\n" ),
aLine.LineNumber() );
aErrorMsg << FROM_UTF8( line );
return false;
}
m_Text = FROM_UTF8( name );
if( size == 0 )
size = GetDefaultTextSize();
m_Size.x = m_Size.y = size;
switch( connectType[0] )
{
case 'I':
m_shape = NET_INPUT;
break;
case 'O':
m_shape = NET_OUTPUT;
break;
case 'B':
m_shape = NET_BIDI;
break;
case 'T':
m_shape = NET_TRISTATE;
break;
case 'U':
m_shape = NET_UNSPECIFIED;
break;
}
switch( sheetSide[0] )
{
case 'R' : /* pin on right side */
SetEdge( 1 );
break;
case 'T' : /* pin on top side */
SetEdge( 2 );
break;
case 'B' : /* pin on bottom side */
SetEdge( 3 );
break;
case 'L' : /* pin on left side */
default :
SetEdge( 0 );
break;
}
return true;
}