Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / BinHexEncoder.cs / 1 / BinHexEncoder.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml { internal abstract class BinHexEncoder { private const string s_hexDigits = "0123456789ABCDEF"; private const int CharsChunkSize = 128; internal static void Encode( byte[] buffer, int index, int count, XmlWriter writer ) { if ( buffer == null ) { throw new ArgumentNullException( "buffer" ); } if ( index < 0 ) { throw new ArgumentOutOfRangeException( "index" ); } if ( count < 0 ) { throw new ArgumentOutOfRangeException( "count" ); } if ( count > buffer.Length - index ) { throw new ArgumentOutOfRangeException( "count" ); } char[] chars = new char[ ( count * 2 ) < CharsChunkSize ? ( count * 2 ) : CharsChunkSize ]; int endIndex = index + count; while ( index < endIndex ) { int cnt = ( count < CharsChunkSize/2 ) ? count : CharsChunkSize/2; int charCount = Encode( buffer, index, cnt, chars ); writer.WriteRaw( chars, 0, charCount ); index += cnt; count -= cnt; } } internal static string Encode(byte[] inArray, int offsetIn, int count) { if (null == inArray) { throw new ArgumentNullException("inArray"); } if (0 > offsetIn) { throw new ArgumentOutOfRangeException("offsetIn"); } if (0 > count) { throw new ArgumentOutOfRangeException("count"); } if (count > inArray.Length - offsetIn) { throw new ArgumentOutOfRangeException("count"); } char[] outArray = new char[2 * count]; int lenOut = Encode(inArray, offsetIn, count, outArray); return new String(outArray, 0, lenOut); } private static int Encode(byte[] inArray, int offsetIn, int count, char[] outArray) { int curOffsetOut =0, offsetOut = 0; byte b; int lengthOut = outArray.Length; for (int j=0; j> 4]; if (curOffsetOut == lengthOut) { break; } outArray[curOffsetOut ++] = s_hexDigits[b & 0xF]; if (curOffsetOut == lengthOut) { break; } } return curOffsetOut - offsetOut; } // function } // class } // namespace // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebRequestModuleElementCollection.cs
- SqlDependencyUtils.cs
- BooleanExpr.cs
- SectionVisual.cs
- Image.cs
- _LazyAsyncResult.cs
- ResolveNextArgumentWorkItem.cs
- TableLayoutPanel.cs
- ObjectStorage.cs
- ToolStripLocationCancelEventArgs.cs
- DataGridViewCellStyleConverter.cs
- IndentTextWriter.cs
- KeyConverter.cs
- XmlTextReaderImplHelpers.cs
- TypeContext.cs
- EmptyQuery.cs
- GreaterThan.cs
- OLEDB_Util.cs
- CreateUserWizard.cs
- GenericTypeParameterBuilder.cs
- xdrvalidator.cs
- ReliableInputConnection.cs
- CapabilitiesPattern.cs
- StrokeDescriptor.cs
- EncryptedType.cs
- XmlnsDictionary.cs
- XmlBindingWorker.cs
- SizeFConverter.cs
- WebPartConnectionsCancelVerb.cs
- FontUnit.cs
- AnnotationObservableCollection.cs
- AsymmetricKeyExchangeFormatter.cs
- SplineKeyFrames.cs
- OpCellTreeNode.cs
- Emitter.cs
- InputMethod.cs
- _IPv4Address.cs
- BrowserDefinition.cs
- DeferrableContent.cs
- ReversePositionQuery.cs
- Nullable.cs
- StylusShape.cs
- NodeInfo.cs
- SqlCacheDependencySection.cs
- XPathNode.cs
- SystemIPv6InterfaceProperties.cs
- VScrollBar.cs
- QueryCacheManager.cs
- DataObjectFieldAttribute.cs
- TypeConverterAttribute.cs
- XmlnsDictionary.cs
- GregorianCalendar.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ByteConverter.cs
- CodeGotoStatement.cs
- EdmComplexTypeAttribute.cs
- HandleExceptionArgs.cs
- Vector3D.cs
- SaveFileDialog.cs
- InheritablePropertyChangeInfo.cs
- Int64AnimationBase.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- MulticastIPAddressInformationCollection.cs
- OracleTimeSpan.cs
- DBConnection.cs
- DesignerAutoFormatCollection.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- FontUnitConverter.cs
- TextAdaptor.cs
- SqlDependency.cs
- DSASignatureDeformatter.cs
- FamilyCollection.cs
- PointConverter.cs
- InitialServerConnectionReader.cs
- Cell.cs
- SHA1Cng.cs
- Polygon.cs
- ReadOnlyDataSource.cs
- KeyEventArgs.cs
- FontFaceLayoutInfo.cs
- ComponentConverter.cs
- BrowserCapabilitiesFactoryBase.cs
- HealthMonitoringSectionHelper.cs
- DbMetaDataColumnNames.cs
- Cursor.cs
- GridViewHeaderRowPresenter.cs
- KeyTime.cs
- Variant.cs
- CodePrimitiveExpression.cs
- StylusEditingBehavior.cs
- DataGridViewLinkCell.cs
- ellipse.cs
- Helpers.cs
- RenderData.cs
- CompModSwitches.cs
- DocumentPageView.cs
- CommandExpr.cs
- Highlights.cs
- DataRecordInfo.cs
- QueryPageSettingsEventArgs.cs