Format A String Into A Fixed Width Field In .Net?
Aug 1, 2011
I am trying to format a string of arbitrary length into a fixed width field for display.
Let's use a width of 20 as an example, and call the string to be formatted s. I'm adding the formatted string to a StringBuilder named b.
Dim b As New System.Text.StringBuilder()
Dim s as New String
If the string I want to display is shorter than 20 characters, I can do this:
b.Append(s.PadRight(20))
or
b.AppendFormat("{0,-20}", s)
So far, so good. But, if the string is longer than 20 characters, I want the string to be truncated to 20 characters as it is appended. The code above appends the entire string.
I tried this:
b.Append(s.Substring(0,20).PadRight(20))
But, this fires an exception if the string was shorter than 20 characters.
So, I ended up with:
b.Append(s.PadRight(20).Substring(0,20))
This seems to do the job. The PadRight prevents the exception by making sure thet string has 20 characters before the Substring is performed.
I was wondering if there is an alternate method that would look more elegant and avoid padding the string just so prevent the substring from causing an exception. Have I missed a feature of String.Format that can accomplish this in one step?
Edited to add solution:
I ended up with the following code:
Module Extensions
<Extension()> _
Function AppendFixed(ByVal b As StringBuilder, ByVal s As String, ByVal width As Integer) As StringBuilder
[Code]....
This uses an extension method to clean up the syntax, as suggested by Joel and Merlyn, and uses the StringBulider Append overloads to avoid creating new strings that will have to be garbage collected, as suggested by supercat.
View 3 Replies
ADVERTISEMENT
Jul 8, 2009
How to delete a record or field from a fixed-width file in visual basic code?
View 1 Replies
May 23, 2007
I am using ms-access 2002. I have to export the data of a ms-access table in Fixed Width format. To accomplish this I am using DoCmd.TransferText method.
DoCmd.TransferText acExportFixed, "schema.ini", "table_ABC", "C: estingTestData.txt"
But I am getting error message: "Run time error-3625 The text file specification 'schema.ini' does not exist.You cannot import, export, or link using the specification."
Here schema.ini is at same location as of text file. i.e. "C: esting"
I tried with
DoCmd.TransferText acExportFixed, "C: estingschema.ini", "table_ABC", C: estingTestData.txt"
but no success.
For delimited format it is working fine
DoCmd.TransferText acExportDelim, "", "VDMMEMBS", "C: estingTestData.txt"
I have gone through the link [URL]
Error message is same as of me but example shown is related to import of txt file.
View 4 Replies
Aug 5, 2011
I have files that are one long line of text but are made up of individual segments. I have managed to parse the segments into a string array but now need to parse each segment into its individual fields, based upon a field structure defined by the first 2 characters of the segment.For example:
CA12345ABC999999XXPPPPPPPP55
CA segment (CA is first 2 characters of segment) has fields defined as:
Field Name,Start,Length
[code]....
View 5 Replies
Aug 26, 2009
just say I have a string as follows:
This is a long long lojngoi sudofi usdfh ksjdhfjk sdhfgkj shgh sdfhg sdfg sdfgdsfg ... I want to specify a maximum width (eg 180) for my string and get the height returned... the picture below explains in more detail:
View 4 Replies
Sep 16, 2009
I need to format a string in a fixed number of characters.
For example, if someone type TWO
It has too save in the variable
000TWO
if type THREE
0THREE
Always 6 characters and fill the rest with zeros on the left.
View 3 Replies
May 6, 2009
I am aware that this is a visual basic dot net post. However It was extremely simple for me to write out a file in VB6 using lines such as the following snippet
[Code]...
I want basically to export an array A (I used zero based array here) with three columns and a particular value B in fixed widths, hence the @@@@@ which means 5 spaces in to a text file defined by the FreeFNum (FreeFileNumber).
I would like to use CSV and all the other formats but some scientific programs written in FORTRAN may not support them. Anyway my file output here needs to be in this fixed width format because it will be used by proprietary software that I have no access to the source code.
[Code]...
View 3 Replies
Jun 18, 2010
I'm using vb6 to read lines of txt files, using the code posted in ream.In.Code "Reading a Text file Line by Line". My question is how can I real a line with fixed column width, for example:
qwerty 12345 asdfg
asd 455 hfgdf
qhjkrty 1235 asdfg
The objective is to read each part of the row. In Visual Studio 2010 Beta version the code I present below that is actually working but it doesn't work in VB6.
Using Reader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\teste.txt")Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidthReader.SetFieldWidths(8, 30, 25, 45, 57)
[code].....
View 2 Replies
Aug 7, 2010
I found away to read a fixed position text file, but I encounter a problem, I know which field I want to go and check, how can I jump directly to the field I need. Readfields does not helps.for instance I need to check on field 3 and 7 of the row before the next row is read.[code]is this my best approach to read a fixed position text file?
View 1 Replies
Nov 16, 2010
I want to set header column width for grid view. I tried HeaderStyle-Width="30px". But it is depending on Item columns. The column width is setting based on item value. But I want fixed width even if it has value or empty.
View 2 Replies
Jun 22, 2011
I need to write some fixed-width font (i.e Courier New or Consolas) text to a .net Winforms window in the Paint event - not using a label or any other winforms control - rather using a graphics object method to render the text onto the form's client area. I am having difficulty aligning text on different lines under headings even though it is fixed width font. How can I get a precise measurement of the width of a single character in the fixed-width font? How can I get 2 lines to print out aligned horizontally in successive text out calls?
For example:
Heading 1 Heading 2
Short Other text
A bit longer Still aligned?
I need a separate call to render each cell of text under Heading 2. For argument's sake - let's say column 1 items are printed in black and column 2 are printed in blue - we can't use the same text out call for the entire line.
View 2 Replies
Aug 5, 2010
Is there a simple way (without measuring characters using a Graphics object) to check if a font is fixed-width?
View 7 Replies
Nov 10, 2011
I'm developing a Point Of Sale (POS) app in VB.NET and .NET Framework 3.5 where multiple items can bought at a time. I need to print all items: their code, name quantity, price in a row-column manner.
SHOP NAME date
========== =====
SL CODE NAME QTY PRICE
== ===== ===== === =====
[code]....
The width of page is fixed but the height will be dynamic.The printout will be printed on rolled paper normally used in a POS system.How can this be done?
View 1 Replies
Jul 12, 2011
In Excel under Data Tab-Text to Columns-Fixed Width- and when next is pressed we get preview of Selected Data.
There a Scale is being designed(10, 20, ...). Is there any way in VB.net to do that scale or any other form of Implementation.
View 1 Replies
May 13, 2011
In my VB project I am returning an SQL datetime field to a date variable mdtCreated = CType(oReader("dtCreated"), Date) In an example it returns mdtCreated as #5/13/2011 2:59:43 PM# which is correct. Later on I want to show this as a string to dd/mm/yyyy format. I have tried mdtCreated.ToString("dd/mm/yyyy hh:mm:ss") But that returns "13/59/2011 02:59:43". I want it to return "13/05/2011 14:59:43" How can I achieve this?
View 2 Replies
Feb 1, 2009
I need to import a big fixed width text data file into SQL server. Before importing, how to determine how many fields and records in the file?
View 11 Replies
May 7, 2011
I am trying to load a text file into an Access 2007 table. I know you can read the file line by line and then create a record out of each line. i was trying to see if this could be done with an INSERT INTO rather than cyclying through all lines of text. My text file is not character delimited but rather by fixed column width. For example:[code]The data in the example has spaces for readability but in reality the data are clumped together like so [code]I cant figure out how to tell the command how the data is structured. I know you can use a schema file but there's got to be a way to do this all through code.
View 1 Replies
Aug 25, 2010
I am learning to use TextFieldParser to read a fixed width text data file. It works great. I copied code below. Question: How to stop at the end of each line because I need to add some code?
Using tf As New TextFieldParser(fileName)
tf.TextFieldType = FileIO.FieldType.FixedWidth
tf.SetFieldWidths(60, 30, 20) //three columns
[Code].....
View 5 Replies
Jun 27, 2012
What is the cleanest, most readable way to String.Format a decimal with the following criteria
start with a sign symbol (+ or -)
a fixed number of fraction digits
no decimal separator
right aligned
pre-padded with "0"'s
View 3 Replies
Mar 25, 2009
For a school program, I was assigned to use a .dat file to store and edit information while using VB to be it's front end( to appear in a listbox). I was also given what field length to use per field. I never worked with .dat files, so I have a few questions (all the google-ing Ive done say the same thing: every .dat file is different so you can't play around with them):
[Code]...
View 4 Replies
May 30, 2012
I have a gridview with autogenerated columns that I set programmatically I want to format the column width. This is my code for my gridview in code behind...
If Not Page.IsPostBack Then
Dim budgetTable As New DataTable("Budgets")
budgetTable.Columns.Add("Approval Date", GetType(Date))
[code]....
View 2 Replies
Oct 20, 2011
I am using VB.Net and crystal Report in VS2008. On Crystal Report I have a database(SQL20005) Column "Address".
I have used "Can Grow" option for that Column to change. But it resizes Vertically. I want to change its Width as Address have different data.
View 3 Replies
Sep 11, 2011
I have a long string like this
dim LongString as String = "123abc456def789ghi"
And I want to split it into a string array. Each element of the array should be in 3 characters length[code]...
View 4 Replies
Sep 14, 2011
var queryString = string.Format("filename={0}&filestream={1}&append={2)", fileName, Convert.ToBase64String(b, 0, bytesRead).ToString(), 1);
above line of code giving error 'Input string was not in a correct format.'
View 2 Replies
Jul 7, 2011
I have a function that is getting passed a String and a DataRow.The String is a custom formatter. The idea is to do this
String.Format(passed_in_String, DataRow("ColumnINeed"))
The reason this is being done is at this point we have no idea what the column contains.However, if the formatter is "{0:MM/dd/yyyy}" and the DataRow("ColumnINeed") is an integer containing 42, String.Format is returning: MM/dd/yyyy In this situation I need it to throw an exception instead of returning nonsense.Is there anyway to make String.Format throw an exception if the object does not match what the format string is expecting?
View 2 Replies
Sep 21, 2010
I found a code snippet online[code]...
But the problem is that the text it outputs isn't properly formatted. It must adhere to a predefined width.
View 3 Replies
May 17, 2012
I am having some problems declaring a fixed lenght string in vb.net. I am studying code for using webcam in vb.net, although the code is from vb6 but I am told it works in dot net. Everyting else seems to be working except this line[url]...
View 3 Replies
Oct 5, 2010
Dim query as String = "Select * from openquery (devbook, 'SELECT wb.arrival_time FROM web_bookings wb ')"All I need is to convert my arrival_time into a datetime field in the query
View 1 Replies
Feb 21, 2010
How do i Declare a string like this:
Dim strBuff As String * 256
View 4 Replies
Mar 26, 2010
I am using a com object to maniplate data inside an external program using VB.NET. One of the methods this com object provides requires 1 string parameter.The external program, however, requires a sting of a specified length, regardless of the number of characters used. The string to be passed to the function (length 36) is a combination of the below key fields.[code]I have tried the VB6 compatability's VBFixedString type but the com object's method throws an exception due to a type mismatch.If I convert the VBFixedString back to a .NET string before passing it to the method, the first null character is again interpreted as a string terminator and the rest of my string is chopped.
View 1 Replies