• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Align column of a output text file

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 14611
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Align column of a output text file

Aritra
Aritra over 13 years ago

Is there any way to align the column of a output text file? 

For example, I want to store the instance name & location to a file. 

p=outfile("~/inst.txt")

foreach(a geGetEditCellView()~>instances

fprintf(p strcat("\n\t" a~>cellName "\t\t" artMakeString(a~>bBox)))

)

 close(p)

 

Now the cell name will varry in length, so the tab will also varry. As a result the bBox location will not be aligned to a column. Is there any way print cell name aligned to a column & bBox location to next column ?

 

I am using IC5.

  • Cancel
Parents
  • dmay
    dmay over 13 years ago

    In case you are new to programming, Marcel's answer may seem a little confusing. Essentially, you want to use the features of the format string for fprintf. Here is the simple solution to your question:

    fprintf(p "%-25s %s\n" a~>cellName artMakeString(a~>bBox))

    This says, print a 25 character string that is left justified (%25s would be right justified), followed by a string without a length specification. If any of your cell names happen to be longer than 25, then your columns won't line up in that case because the full string will still be printed rather than truncated. Marcel's solution determines the maximum string length and then dynamically creates the format string (the %-25s) to use the maximum string width. If a hard coded column width is good enough, then the line above should be sufficient.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • dmay
    dmay over 13 years ago

    In case you are new to programming, Marcel's answer may seem a little confusing. Essentially, you want to use the features of the format string for fprintf. Here is the simple solution to your question:

    fprintf(p "%-25s %s\n" a~>cellName artMakeString(a~>bBox))

    This says, print a 25 character string that is left justified (%25s would be right justified), followed by a string without a length specification. If any of your cell names happen to be longer than 25, then your columns won't line up in that case because the full string will still be printed rather than truncated. Marcel's solution determines the maximum string length and then dynamically creates the format string (the %-25s) to use the maximum string width. If a hard coded column width is good enough, then the line above should be sufficient.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information