Loading ...
Sorry, an error occurred while loading the content.

Create CSV file

Expand Messages
  • mlafount
    Hi All, I m looking for a clip that someone has probably already written :-) Let s say I got a string of tab delimited data like this: ABD072132 52 LaFountain,
    Message 1 of 17 , Dec 5, 2007
    • 0 Attachment
      Hi All,

      I'm looking for a clip that someone has probably already written :-)

      Let's say I got a string of tab delimited data like this:

      ABD072132 52 LaFountain, Michael
      ABD073243 49 Smith, Sherri
      ABD074354 12 Johnson, Marci

      I need a clip that will convert it to a CSV file like this:

      'ABD072132', 52, 'LaFountain, Michael'
      'ABD073243', 49, 'Smith, Sherri'
      'ABD074354', 12, 'Johnson, Marci'

      The data above is just an example. I would like the clip to be
      intelligent enough to recognize or be told a delimiter, add quotes
      to any number of alpha fields and replace the delimiter with a comma
      and space.

      Anyone got something like this laying around?
    • Don - HtmlFixIt.com
      ... Well you could start with something like this: ^!Replace ^(.*) t(.*) t(.*) $1 , $2 , $3 RAWS Of course that isn t intelligent like you wished. You
      Message 2 of 17 , Dec 5, 2007
      • 0 Attachment
        mlafount wrote:
        > Hi All,
        >
        > I'm looking for a clip that someone has probably already written :-)
        >
        > Let's say I got a string of tab delimited data like this:
        >
        > ABD072132 52 LaFountain, Michael
        > ABD073243 49 Smith, Sherri
        > ABD074354 12 Johnson, Marci
        >
        > I need a clip that will convert it to a CSV file like this:
        >
        > 'ABD072132', 52, 'LaFountain, Michael'
        > 'ABD073243', 49, 'Smith, Sherri'
        > 'ABD074354', 12, 'Johnson, Marci'
        >
        > The data above is just an example. I would like the clip to be
        > intelligent enough to recognize or be told a delimiter, add quotes
        > to any number of alpha fields and replace the delimiter with a comma
        > and space.
        >
        > Anyone got something like this laying around?

        Well you could start with something like this:
        ^!Replace "^(.*)\t(.*)\t(.*)" >> "'$1','$2','$3'" RAWS

        Of course that isn't intelligent like you wished.
        You can also create arrays with the delimiter and Jody's NoteBlock clip
        does a lot of work based on that concept.
      • buralex@gmail.com
        mlafount said on Dec 05, 2007 18:19 -0500 (in ... I had this (as you say) just laying around: Conv CSV -- TSV ^!replace , ^t
        Message 3 of 17 , Dec 5, 2007
        • 0 Attachment
          "mlafount" <mlafount@...> said on Dec 05, 2007 18:19 -0500 (in
          part):
          > I'm looking for a clip that someone has probably already written :-)
          >
          > Let's say I got a string of tab delimited data like this:
          >
          > ABD072132 52 LaFountain, Michael
          > ABD073243 49 Smith, Sherri
          > ABD074354 12 Johnson, Marci
          >
          > I need a clip that will convert it to a CSV file like this:
          >
          > 'ABD072132', 52, 'LaFountain, Michael'
          > 'ABD073243', 49, 'Smith, Sherri'
          > 'ABD074354', 12, 'Johnson, Marci'
          >
          > The data above is just an example. I would like the clip to be
          > intelligent enough to recognize or be told a delimiter, add quotes
          > to any number of alpha fields and replace the delimiter with a comma
          > and space.
          >
          > Anyone got something like this laying around?
          I had this (as you say) just laying around:
          Conv CSV --> TSV
          ^!replace "," >> "^t" wsai
          ^!replace "^"|"$|(?<=[\t])"|"(?=[\t])|\t$" >> "" rwsai

          This does EXACTLY the reverse of what you want :-(

          not tested, but this should do what you want:
          CONV TSV --> CSV (double)
          ^!replace "\t" >> "","" rwasi
          ^!replace "^|$" >> """ rwsai

          above for double-quotes - if you want single-quotes as per your example,
          change to:
          CONV TSV --> CSV (single)
          ^!replace "\t" >> "','" rwasi
          ^!replace "^|$" >> "'" rwsai

          Regards ... Alec -- buralex-gmail
          --



          [Non-text portions of this message have been removed]
        • Don - HtmlFixIt.com
          buralex@gmail.com wrote: good start Alex ... There is a part here in the middle that could be smoother I suspect: ; using idea by Alex ; work by don at
          Message 4 of 17 , Dec 6, 2007
          • 0 Attachment
            buralex@... wrote:
            good start Alex ...

            There is a part here in the middle that could be smoother I suspect:

            ; using idea by Alex
            ; work by don at htmlfixit.com
            ; set delimiter and quote choices
            ; long line follows
            ^!Set %Delimiter%=^?[Enter delimiter (^p ^t , : ; |)=New
            line^=\n\r|_Tab^=\t|Comma^=,|Colon^=:|Semi Colon^=;|Comma with
            Space(s)^=, +|Multiple Spaces^= {2,}|Colon with space^=: +|Semi-Colon
            with Space(s); +]; %Quote%=^?[Set Quote
            (single/double/none)=Single^='|_Double^="|None^=]

            ; remove all empty lines
            ; how to do with regex? anyone?
            :Loop
            ^!Replace "^P^P" >> "" ACIWS
            ^!IfError Next ELSE Loop

            :ConfirmNoBlankLine
            ^!Jump Doc_End
            ^!Select Bol
            ^!If "^$GetSelection$" <> "" DoIt
            ^!Keyboard BACKSPACE

            :DoIt
            ; put quote comma quote between fields
            ^!replace "^%Delimiter%" >> "^%Quote%,^%Quote%" rwsai

            ; add quotes to start and end of each line
            ^!replace "^|$" >> "^%Quote%" rwsai
          • hsavage
            ... mlafount, You may want to reconsider your choice of delimiters. With a comma choice each last , first will be split into 2 records. --
            Message 5 of 17 , Dec 6, 2007
            • 0 Attachment
              mlafount wrote:
              > Hi All,
              >
              > I'm looking for a clip that someone has probably already written :-)
              >
              > Let's say I got a string of tab delimited data like this:
              >
              > ABD072132 52 LaFountain, Michael
              > ABD073243 49 Smith, Sherri
              > ABD074354 12 Johnson, Marci
              >
              > I need a clip that will convert it to a CSV file like this:
              >
              > 'ABD072132', 52, 'LaFountain, Michael'
              > 'ABD073243', 49, 'Smith, Sherri'
              > 'ABD074354', 12, 'Johnson, Marci'
              >
              > The data above is just an example. I would like the clip to be
              > intelligent enough to recognize or be told a delimiter, add quotes
              > to any number of alpha fields and replace the delimiter with a comma
              > and space.
              >
              > Anyone got something like this laying around?
              >
              mlafount,

              You may want to reconsider your choice of delimiters. With a comma
              choice each 'last', 'first' will be split into 2 records.

              --
              ·············································
              ºvº SL-12-43 -created- 2007.12.06 - 07.22.28

              Great Truths Children Have Learned:
              "Never ask your 3-year old brother to hold a tomato."
              ¤ ø ¤ hrs ø hsavage@...
            • hsavage
              ... mlafount, You also may want to consider downloading CSVed , for handling, altering and creating CSV databases. The link is,
              Message 6 of 17 , Dec 6, 2007
              • 0 Attachment
                mlafount wrote:
                > Hi All,
                >
                > I'm looking for a clip that someone has probably already written :-)
                >
                > Let's say I got a string of tab delimited data like this:
                >
                > ABD072132 52 LaFountain, Michael
                > ABD073243 49 Smith, Sherri
                > ABD074354 12 Johnson, Marci
                >
                > I need a clip that will convert it to a CSV file like this:
                >
                > 'ABD072132', 52, 'LaFountain, Michael'
                > 'ABD073243', 49, 'Smith, Sherri'
                > 'ABD074354', 12, 'Johnson, Marci'
                >
                > The data above is just an example. I would like the clip to be
                > intelligent enough to recognize or be told a delimiter, add quotes
                > to any number of alpha fields and replace the delimiter with a comma
                > and space.
                >
                > Anyone got something like this laying around?
                >
                mlafount,

                You also may want to consider downloading 'CSVed', for handling,
                altering and creating CSV databases.

                The link is, http://home.hccnet.nl/s.j.francke/software/software.htm

                --
                ·············································
                ºvº SL-12-43 -created- 2007.12.06 - 07.22.28

                Great Truths Children Have Learned:
                "Never ask your 3-year old brother to hold a tomato."
                ¤ ø ¤ hrs ø hsavage@...
              • Sheri
                ... Here s one that quotes the nonnumeric fields ... This will convert the specific example, including quoting of nonnumeric fields. It allows commas and
                Message 7 of 17 , Dec 6, 2007
                • 0 Attachment
                  --- In ntb-clips@yahoogroups.com, "mlafount" <mlafount@...> wrote:
                  >
                  > Hi All,
                  >
                  > I'm looking for a clip that someone has probably already written :-)
                  >
                  > Let's say I got a string of tab delimited data like this:
                  >
                  > ABD072132 52 LaFountain, Michael
                  > ABD073243 49 Smith, Sherri
                  > ABD074354 12 Johnson, Marci
                  >
                  > I need a clip that will convert it to a CSV file like this:
                  >
                  > 'ABD072132', 52, 'LaFountain, Michael'
                  > 'ABD073243', 49, 'Smith, Sherri'
                  > 'ABD074354', 12, 'Johnson, Marci'

                  Here's one that quotes the nonnumeric fields
                  >
                  > The data above is just an example. I would like the clip to be
                  > intelligent enough to recognize or be told a delimiter, add quotes
                  > to any number of alpha fields and replace the delimiter with a comma
                  > and space.
                  >
                  > Anyone got something like this laying around?
                  >

                  This will convert the specific example, including quoting of
                  nonnumeric fields. It allows commas and periods in the numeric fields
                  and numeric fields can start with a minus sign.

                  Regards,
                  Sheri

                  ^!Replace "(^|\t)\K[^\t\r\n][^\t\r\n]*(?=(\t|$))" >> "'$0'" RAWS
                  ^!Replace "(?:^|\t)\K'(\-?(?:[\d,.]+))'" >> "$1" RAWS
                  ^!Replace "^T" >> ", " AWS
                • mlafount
                  Thanks for all the suggestions. I really needed something that is fairly flexible. I often need to move data from an excel spreadsheet to a mainframe. The
                  Message 8 of 17 , Dec 6, 2007
                  • 0 Attachment
                    Thanks for all the suggestions. I really needed something that is
                    fairly flexible. I often need to move data from an excel spreadsheet
                    to a mainframe. The easiest way I have found is via an SQL insert
                    statement. Excel will let you mess with text qualifiers and other
                    parameters when importing a file but it is limited when saving a CSV
                    file. So, I needed the following clip.

                    The idea is to copy all of the columns from a spreadsheet into
                    NoteTab. This creates a tab delimited document. Run the clip and it
                    creates a new document based on the formatting parameters. The first
                    line is used as a model for the formatting of the subsequent lines.
                    If the columns in the first line are: Alpha, Alpha, Numeric, Alpha,
                    Numeric then all of the other lines will be formatted like the first
                    line. If a row is missing fields, they will be filled and delimited
                    as nulls. If there are extra columns in a row, they will be
                    truncated.

                    Maybe someone else will find it useful too.

                    -Mike LaFountain


                    Test Data:
                    aaaaaaa bbbbbbb 111 ddd 4444 ffff
                    bbbbbbb cccccc -222
                    ddd eeee 333 gggg -6666 jjj kkkk 1211
                    cccccc ddd 333 ffff -6666 hhh


                    Clip:
                    ; CREATE CSV

                    ;=====================
                    ; Get input variables
                    ;=====================
                    ^!Continue This clip will take the active tab (which should be a
                    delimited file) and format it according to the selected options. The
                    first row is used as a model for all columns. Continue?
                    ^!ClearVariables
                    ^!Set %LP%=(; %LB%=[; %LC%={; %LN=^%Empty%
                    ^!Set %DelimiterIn%=^?[--Input Options-- Field delimiter in=_Tab^=^%
                    TAB%|Comma^=,|Pipe^=^%VBar%|Semi-colon^=;|Space^=^%SPACE%|Equal^==]
                    ^!Set %DelimiterOut%=^?[--Output Options-- Field delimiter=Tab^=^%
                    TAB%|_Comma^=,|Comma/Space^=,^%Space%|Pipe^=^%VBar%|Semi-
                    colon^=;|Space^=^%SPACE%|Equal^==]
                    ^!Set %TxtQual%=^?[Text qualifier=_Apostrophe^='|Quote^="|None^=^%
                    Empty%]
                    ^!Set %NullAlpha%=^?[Null alpha field=_Null^=^%Empty%|Blank^=^%
                    Space%]
                    ^!Set %NullNumeric%=^?[Null numeric field=_Null^=^%Empty%|Zero^=0]
                    ^!Set %Negative%=^?[Negative sign before or after
                    number=Before^=B|_After^=A]
                    ^!Set %EncloseL%=^?[Enclose Line=No^=^%LN%|_Parentheses^=^%LP%
                    |Brackets^=^%LB%|Braces^=^%LC%]
                    ^!Set %EndOfLine%=^?[Add to end of line=None^=^%Empty%|Tab^=^%TAB%
                    |Comma^=,|_Space/Comma/Space^=^%Space%,^%Space%|Pipe^=^%VBar%|Semi-
                    colon^=;|Space^=^%SPACE%|Equal^==]
                    ^!IfCancel Exit

                    ;================
                    ; Set Delimiters
                    ;================
                    ^!SetListDelimiter=^%DelimiterIn%
                    ^!SetDelimiter=^%DelimiterIn%

                    ;===========================================
                    ; Get maximum row count, set Row and Column
                    ; Setup "right side" of enclose line
                    ;===========================================
                    ^!Set %MaxRow%=^$GetTextLineCount$
                    ^!Set %r%=1; %c%=1
                    ^!If ^%EncloseL%=^%LN% ^!Set %EncloseR%=^%LN%
                    ^!If ^%EncloseL%=^%LP% ^!Set %EncloseR%=)
                    ^!If ^%EncloseL%=^%LB% ^!Set %EncloseR%=]
                    ^!If ^%EncloseL%=^%LC% ^!Set %EncloseR%=}

                    ;================
                    ; Get first line
                    ;================
                    ^!Jump Doc_Start
                    ^!Select Line
                    ^!SetArray %Format%=^$GetSelection$
                    ^!Set %MaxColumn%=^%Format0%
                    ^!Select 0

                    ;====================================================================
                    =
                    ; Capture format from first line for each column (alpha or numeric).
                    ; All subsequent lines will be forced to match the first line
                    format.
                    ;====================================================================
                    =
                    :FormatLoop
                    ^!If ^$IsNumber(^%Format^%c%%)$ = 1 FormatN Else FormatA
                    :FormatN
                    ^!Set %Format^%c%%=N
                    ^!Goto FormatC
                    :FormatA
                    ^!Set %Format^%c%%=A
                    :FormatC
                    ^!Inc %c%
                    ^!If ^%c% <= ^%MaxColumn% FormatLoop

                    ;====================
                    ; Loop thru each row
                    ;====================
                    ^!Set %r%=1; %c%=1
                    :RowLoop
                    ^!Set %RowData%=^%Empty%

                    ;=====================================
                    ; Loop thru each column and get field
                    ;=====================================
                    ^!Set %c%=1
                    :ColumnLoop
                    ^!Set %Field%=^$GetField(^%r%;^%c%)$
                    ^!If ^%Format^%c%=A FormatAlpha Else FormatNumeric

                    ;=======================
                    ; Format field as alpha
                    ;=======================
                    :FormatAlpha
                    ^!Set %Field%=^%TxtQual%^%Field%^%TxtQual%
                    ^!If ^%Field%=^%TxtQual%^%TxtQual% ^!Set %Field%=^%TxtQual%^%
                    NullAlpha%^%TxtQual%
                    ^!Goto AddDelimiter

                    ;=========================
                    ; Format field as numeric
                    ;=========================
                    :FormatNumeric
                    ^!If ^%Field%=^%Empty% ^!Set %Field%=^%NullNumeric%
                    ^!If ^%Field%<0 Next Else AddDelimiter
                    ^!If ^%Field%=^%Empty% AddDelimiter
                    ^!If ^%Negative%=B AddDelimiter
                    ^!Set %Field%=^$Calc(^%Field%*-1)$-

                    ;==============================
                    ; Add delimiter, append to row
                    ;==============================
                    :AddDelimiter
                    ^!If ^%c%<^%MaxColumn% ^!Set %Field%=^%Field%^%DelimiterOut%
                    ^!Set %RowData%=^%RowData%^%Field%

                    ;=================
                    ; Get next column
                    ;=================
                    ^!Inc %c%
                    ^!If ^%c% <= ^%MaxColumn% ColumnLoop

                    ;==============
                    ; Get next row
                    ;==============
                    ^!Set %RowData%=^%EncloseL%^%RowData%^%EncloseR%^%EndOfLine%^%NL%
                    ^!Set %Table%=^%Table%^%RowData%
                    ^!Inc %r%
                    ^!If ^%r% <= ^%MaxRow% RowLoop

                    ;===================================
                    ; Write edited data to new document
                    ;===================================
                    ^!Toolbar New Document
                    ^!InsertText ^%Table%
                  • buralex@gmail.com
                    Don - HtmlFixIt.com said on Dec 06, 2007 7:14 ... Alec not Alex :-) ... ^!replace ( r n)+ r n rwais or ^!replace R+ r n
                    Message 9 of 17 , Dec 6, 2007
                    • 0 Attachment
                      "Don - HtmlFixIt.com" <don@...> said on Dec 06, 2007 7:14
                      -0500 (in part):
                      > good start Alex ...
                      Alec not Alex :-)
                      > ; remove all empty lines
                      > ; how to do with regex? anyone?
                      > :Loop
                      > ^!Replace "^P^P" >> "" ACIWS
                      > ^!IfError Next ELSE Loop
                      ^!replace "(\r\n)+" >> "\r\n" rwais

                      or

                      ^!replace "\R+" >> "\r\n" rwais

                      ie. change one or more occurrences of <RETURN> to just one on entire
                      document. Your "^P^P" requires extra passes based on whether there is
                      odd or even numbers of extra blank lines. Since one by itself on the end
                      of the line with non-blank on next line is OK it *might* be faster to
                      use: "(\r\n){2,}" or "\R{2,} but Sheri is the only one who might be able
                      to answer that authoritatively :-)

                      btw: (someone else asked about use of flags in
                      replace/find/regex/non-regex)
                      I always include "i"-case insensitive flag even when not needed as in
                      above two lines.
                      And *almost* always "w"-whole doc, not just from cursor, "a"-all
                      occurrences in line not just first

                      btw: Mike - does it make any difference wrt. your end use of the
                      converted spreadsheet whether numeric fields are un-quoted or not, or
                      whether or not extra trailing null fields (TABS) get converted to
                      unnecessary sets of (,"","","")
                      My perhaps erroneous belief had always been that CSV requires
                      surrounding quote marks only when a field actually contains interior
                      comma(s).
                      Isn't:

                      * bob,alec, dave jones, bill is just as valid as
                      * "bob","alec", "dave jones","bill"?

                      Regards ... Alec -- buralex-gmail
                      --



                      [Non-text portions of this message have been removed]
                    • Sheri
                      ... It would be more efficient IMO to replace two or more with one than to replace one or more with one. It would be doing unnecessary work if you match and
                      Message 10 of 17 , Dec 7, 2007
                      • 0 Attachment
                        --- In ntb-clips@yahoogroups.com, buralex@... wrote:
                        >
                        > "Don - HtmlFixIt.com" <don@...> said on Dec 06, 2007 7:14
                        > -0500 (in part):
                        > > good start Alex ...
                        > Alec not Alex :-)
                        > > ; remove all empty lines
                        > > ; how to do with regex? anyone?
                        > > :Loop
                        > > ^!Replace "^P^P" >> "" ACIWS
                        > > ^!IfError Next ELSE Loop
                        > ^!replace "(\r\n)+" >> "\r\n" rwais
                        >
                        > or
                        >
                        > ^!replace "\R+" >> "\r\n" rwais
                        >
                        > ie. change one or more occurrences of <RETURN> to just one on
                        > entire document. Your "^P^P" requires extra passes based on
                        > whether there is odd or even numbers of extra blank lines. Since
                        > one by itself on the end of the line with non-blank on next line
                        > is OK it *might* be faster to use: "(\r\n){2,}" or "\R{2,} but
                        > Sheri is the only one who might be able to answer that
                        > authoritatively :-)

                        It would be more efficient IMO to replace two or more with one than to
                        replace one or more with one. It would be doing unnecessary work if
                        you match and replace the single occurrences. However the time
                        difference would probably not be noticeable.

                        Regards,
                        Sheri
                      • Don - HtmlFixIt.com
                        ... Actually I tried this very combination before writing the above. It does not work! If you have a blank line as the last line in the file, it is not
                        Message 11 of 17 , Dec 7, 2007
                        • 0 Attachment
                          Sheri wrote:
                          > --- In ntb-clips@yahoogroups.com, buralex@... wrote:
                          >> "Don - HtmlFixIt.com" <don@...> said on Dec 06, 2007 7:14
                          >> -0500 (in part):
                          >>> good start Alex ...
                          >> Alec not Alex :-)
                          >>> ; remove all empty lines
                          >>> ; how to do with regex? anyone?
                          >>> :Loop
                          >>> ^!Replace "^P^P" >> "" ACIWS
                          >>> ^!IfError Next ELSE Loop


                          >> ^!replace "(\r\n)+" >> "\r\n" rwais
                          >>

                          Actually I tried this very combination before writing the above. It
                          does not work! If you have a blank line as the last line in the file,
                          it is not removed. Even though it shows two paragraphs symbols in a
                          row. Mine doesn't work either (the ^P^P) will not remove the last blank
                          line. Perhaps this is a bug?

                          I sometimes use this at the end of the file:
                          :ConfirmNoBlankLine
                          ^!Jump Doc_End
                          ^!Select Bol
                          ^!If "^$GetSelection$" <> "" DoIt
                          ^!Keyboard BACKSPACE
                        • Flo
                          ... Don, The A and z sequences are doing the job. The possible positions of CR/NL are: - at doc start matched with A - a CR/NL followed by CR/NL - at doc
                          Message 12 of 17 , Dec 8, 2007
                          • 0 Attachment
                            --- In ntb-clips@yahoogroups.com, "Don - HtmlFixIt.com" <don@...>
                            wrote:

                            > ^!replace "(\r\n)+" >> "\r\n" rwais
                            > Actually I tried this very combination before writing the above.
                            > It does not work! If you have a blank line as the last line in
                            > the file, it is not removed...

                            Don,

                            The \A and \z sequences are doing the job. The possible positions of
                            CR/NL are:

                            - at doc start matched with \A
                            - a CR/NL followed by CR/NL
                            - at doc end matched with \z

                            This will remove double CR/NL at any position:

                            ^!Replace "\R(?=\R)|\A\R|\R\z" >> "" AWRS

                            Regards,
                            Flo
                          • Sheri
                            ... The end-of-file marker is not a line break. A line break is a series of actual control characters (carriage return and line feed). They can actually be
                            Message 13 of 17 , Dec 8, 2007
                            • 0 Attachment
                              Flo wrote:
                              > --- In ntb-clips@yahoogroups.com, "Don - HtmlFixIt.com" <don@...>
                              > wrote:
                              >
                              >
                              >> ^!replace "(\r\n)+" >> "\r\n" rwais
                              >> Actually I tried this very combination before writing the above.
                              >> It does not work! If you have a blank line as the last line in
                              >> the file, it is not removed...
                              >>
                              >
                              > Don,
                              >
                              > The \A and \z sequences are doing the job. The possible positions of
                              > CR/NL are:
                              >
                              > - at doc start matched with \A
                              > - a CR/NL followed by CR/NL
                              > - at doc end matched with \z
                              >
                              > This will remove double CR/NL at any position:
                              >
                              > ^!Replace "\R(?=\R)|\A\R|\R\z" >> "" AWRS
                              >
                              > Regards,
                              > Flo
                              >
                              >

                              The end-of-file marker is not a line break. A line break is a series of
                              actual control characters (carriage return and line feed). They can
                              actually be selected, copied, pasted, etc. NoteTab Pro has a feature to
                              display hidden characters, but it makes line breaks appear to be one
                              character when it is actually two.

                              It is usually best if each line in the document is terminated with a
                              carriage return/line feed. That means there will hopefully be no text on
                              the "line" containing the end-of-file marker.

                              When the last line of text is followed immediately by the end-of-file
                              marker, clips to process that file often require special processing just
                              for the last line.

                              Regards,
                              Sheri
                            • Don - HtmlFixIt.com
                              Ok why does a guy named Alec have Alex in his email address? Anyway, you are correct, the quotes are only needed in comma separated value files when/if there
                              Message 14 of 17 , Dec 8, 2007
                              • 0 Attachment
                                Ok why does a guy named Alec have Alex in his email address? Anyway, you
                                are correct, the quotes are only needed in comma separated value files
                                when/if there are delimiters (usually commas) in the data itself.
                                However having extra quotes causes no problems.

                                > btw: Mike - does it make any difference wrt. your end use of the
                                > converted spreadsheet whether numeric fields are un-quoted or not, or
                                > whether or not extra trailing null fields (TABS) get converted to
                                > unnecessary sets of (,"","","")
                                > My perhaps erroneous belief had always been that CSV requires
                                > surrounding quote marks only when a field actually contains interior
                                > comma(s).
                                > Isn't:
                                >
                                > * bob,alec, dave jones, bill is just as valid as
                                > * "bob","alec", "dave jones","bill"?
                                >
                                > Regards ... Alec -- buralex-gmail
                              • Don - HtmlFixIt.com
                                ... Thanks Sheri and Flo (and AleC) for moving this discussion along. Flo that removes all empty lines as promised. That is one I need to save. Perhaps,
                                Message 15 of 17 , Dec 8, 2007
                                • 0 Attachment
                                  Flo wrote:
                                  >> - at doc start matched with \A
                                  >> - a CR/NL followed by CR/NL
                                  >> - at doc end matched with \z
                                  >>
                                  >> This will remove double CR/NL at any position:
                                  >>
                                  >> ^!Replace "\R(?=\R)|\A\R|\R\z" >> "" AWRS
                                  >>
                                  >> Regards,
                                  >> Flo
                                  >>
                                  >>
                                  > Sheri wrote:
                                  > The end-of-file marker is not a line break. A line break is a series of
                                  > actual control characters (carriage return and line feed). They can
                                  > actually be selected, copied, pasted, etc. NoteTab Pro has a feature to
                                  > display hidden characters, but it makes line breaks appear to be one
                                  > character when it is actually two.
                                  >
                                  > It is usually best if each line in the document is terminated with a
                                  > carriage return/line feed. That means there will hopefully be no text on
                                  > the "line" containing the end-of-file marker.
                                  >
                                  > When the last line of text is followed immediately by the end-of-file
                                  > marker, clips to process that file often require special processing just
                                  > for the last line.
                                  >
                                  > Regards,
                                  > Sheri
                                  >

                                  Thanks Sheri and Flo (and AleC) for moving this discussion along.

                                  Flo that removes all "empty lines" as promised. That is one I need to
                                  save. Perhaps, when showing hidden characters, notetab should really
                                  reflect the last "return" as a file end mark of some type to distinguish
                                  it from another return? I'll be honest I have never thought about it
                                  because I am only now beginning to understand and use regex. I always
                                  did it manually. But it all makes sense now, that last hidden character
                                  is really a file end (the \z) and returns are really two characters the
                                  (\r\n) as I caught on to a while back when I started using regex. I
                                  guess I have always known there was a file end but never gave it a
                                  second thought. In our context the issue is whether the file end is on
                                  the last line or on the next line then if I have it right now.

                                  Don

                                  saved here: http://htmlfixit.com/blog/?p=361
                                • Sheri
                                  ... Hi Don, Not to nit pick with your blog, but the end-of-file marker is not a character. z is an assertion for the position of end of the file. It has a
                                  Message 16 of 17 , Dec 8, 2007
                                  • 0 Attachment
                                    Don - HtmlFixIt.com wrote:
                                    > Flo wrote:
                                    >
                                    >>> - at doc start matched with \A
                                    >>> - a CR/NL followed by CR/NL
                                    >>> - at doc end matched with \z
                                    >>>
                                    >>> This will remove double CR/NL at any position:
                                    >>>
                                    >>> ^!Replace "\R(?=\R)|\A\R|\R\z" >> "" AWRS
                                    >>>
                                    >>> Regards,
                                    >>> Flo
                                    >>>
                                    >>>
                                    >>>
                                    >> Sheri wrote:
                                    >> The end-of-file marker is not a line break. A line break is a series of
                                    >> actual control characters (carriage return and line feed). They can
                                    >> actually be selected, copied, pasted, etc. NoteTab Pro has a feature to
                                    >> display hidden characters, but it makes line breaks appear to be one
                                    >> character when it is actually two.
                                    >>
                                    >> It is usually best if each line in the document is terminated with a
                                    >> carriage return/line feed. That means there will hopefully be no text on
                                    >> the "line" containing the end-of-file marker.
                                    >>
                                    >> When the last line of text is followed immediately by the end-of-file
                                    >> marker, clips to process that file often require special processing just
                                    >> for the last line.
                                    >>
                                    >> Regards,
                                    >> Sheri
                                    >>
                                    >>
                                    >
                                    > Thanks Sheri and Flo (and AleC) for moving this discussion along.
                                    >
                                    > Flo that removes all "empty lines" as promised. That is one I need to
                                    > save. Perhaps, when showing hidden characters, notetab should really
                                    > reflect the last "return" as a file end mark of some type to distinguish
                                    > it from another return? I'll be honest I have never thought about it
                                    > because I am only now beginning to understand and use regex. I always
                                    > did it manually. But it all makes sense now, that last hidden character
                                    > is really a file end (the \z) and returns are really two characters the
                                    > (\r\n) as I caught on to a while back when I started using regex. I
                                    > guess I have always known there was a file end but never gave it a
                                    > second thought. In our context the issue is whether the file end is on
                                    > the last line or on the next line then if I have it right now.
                                    >
                                    > Don
                                    >
                                    > saved here: http://htmlfixit.com/blog/?p=361
                                    >
                                    >
                                    Hi Don,

                                    Not to nit pick with your blog, but the end-of-file marker is not a
                                    character. \z is an assertion for the position of end of the file. It
                                    has a width of zero characters. Ditto for \A, \Z, \z, ^ and $.

                                    Regards,
                                    Sheri
                                  • buralex@gmail.com
                                    Don - HtmlFixIt.com said on Dec 08, 2007 10:39 ... My given name is Alexander but my parents always called me Alec after my uncle and
                                    Message 17 of 17 , Dec 8, 2007
                                    • 0 Attachment
                                      "Don - HtmlFixIt.com" <don@...> said on Dec 08, 2007 10:39
                                      -0500 (in part):
                                      > Ok why does a guy named Alec have Alex in his email address?
                                      My given name is Alexander but my parents always called me Alec after my
                                      uncle and grandfather.
                                      More recently ... I have an email filter that puts any email I receive
                                      that contains the string "alec" in to a "Look-at-me first" folder. So I
                                      stick the alex in my email address as BURgess+ALEX. If I'd used BURALEC
                                      then all the newsletters that contain stuff like : "you subscribed a
                                      buralex@..." would be mistakenly filtered to the "Look-at-me
                                      first" folder.

                                      Regards ... Alec -- buralex-gmail
                                      --



                                      [Non-text portions of this message have been removed]
                                    Your message has been successfully submitted and would be delivered to recipients shortly.