I am working with text files that have been extracted from google docs. The google docs versions have comments and these are included in the file when they are converted to .txt. I would like to programmatically convert each comment to an rmarkdown flavoured footnote.
At present they look like so:
*Background:*[a] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nulla[b] a accumsan enim. Aenean sed elit a nunc efficitur pharetra.
*Method:* [c]Praesent dapibus turpis in dictum aliquam.
[a]This should be bolded
[b]What happens to a multiple
line
comment?
[c]How about we make this italics?
The desired output is
*Background:*^[This should be bolded] Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nulla^[What happens to a multiple
line
comment?] a accumsan enim. Aenean sed elit a nunc efficitur pharetra.
*Method:* ^[How about we make this italics?]Praesent dapibus turpis in dictum aliquam.
There are an unknown number of comments in each file (some files have no comments). As demonstrated - comments can span multiple lines, but the comment text is always at the very end of the file. It's worth noting that there may be square brackets in text other than the comments, so ideally only values that had a comment marker (i.e. [a]) and a corresponding comment at the end of the file (i.e. [a]This should be bolded) would be processed.
Thanks to a (unfortunately now deleted) starting point from #OganM I've now managed to find a working solution.
library(dplyr)
library(stringr)
comment_to_footnote <- function(text) {
pairs <- stringr::str_extract_all(text, '\\[[a-z]\\]') %>% {.[[1]]}
comments <-
stringr::str_extract_all(text, "(?s)\\n\\[[a-z]\\].*?($)") %>% {.[[1]]} %>%
str_split("\\[") %>% {.[[1]]}
comments <-
as.data.frame(cbind(
tag = sapply(str_split(comments, "\\]"), function(x) x[1]),
comment = sapply(str_split(comments, "\\]"), function(x) x[2])
)) %>%
mutate(
pattern = paste0("\\[", tag, "\\]"),
tag = paste0("[", tag, "]"),
comment_clean = str_replace_all(comment, pattern = "\\n", " ")
) %>%
right_join(as.data.frame(x = pairs[duplicated(pairs)]), by = c("tag" = "pairs[duplicated(pairs)]"))
for (i in 1:nrow(comments)) {
# replace the initial occurence of the label with the
# markdown style footer
text = str_replace(
string = text,
pattern = as.character(comments[i, 3]),
replacement = paste0('^[', comments[i, 4], '] ')
)
# get rid of the second occurence of the label that used
# to have the text in it
text = str_remove(string = text,
pattern = paste0("(?s)\\n", comments[i, 3], comments[i, 2], ".*?($)"))
}
return(text)
}
This ignores text in square brackets that does not have a matching comment at the end of the file.
text <- "*Background:*[a][b] Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis maximus urna ac erat tincidunt fermentum. Nulla[c] a accumsan enim. Aenean [d]sed elit a nunc efficitur pharetra. Vivamus ultricies pretium lobortis. Nam bibendum mi vel eros congue, ac ultrices lorem dictum. Orci varius [p < .001] natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed vitae feugiat orci. Integer hendrerit enim nec odio condimentum ornare. Vestibulum nisl quam, porttitor in semper et, porta ac enim. Phasellus a nisl vulputate, [This is handwritten and has no matching comment tag - should not be extracted]luctus mi sit amet, tincidunt enim. Sed ac est pellentesque, aliquam lacus non, rutrum neque. Sed vestibulum magna sit amet ipsum vehicula mollis. Suspendisse orci magna, vulputate ut neque et, consequat aliquam dui.
*Method:* [e]Praesent dapibus turpis in dictum aliquam. Maecenas ac molestie nunc. Nulla varius ultrices purus at blandit. Nulla dolor nisi, lacinia a ante eu, dictum semper nulla. Donec volutpat ultrices tempus. Proin non tristique metus, et tristique ante. Duis malesuada orci sit amet laoreet commodo. Donec faucibus vel erat tempus hendrerit. Vestibulum sit amet massa sit amet velit tempus dignissim. Etiam sed elit lacinia, euismod dui vitae, sagittis enim. Vestibulum ut eleifend orci, a semper massa. Quisque eu fringilla massa, at viverra nulla.[f]
*Results:* In laoreet, eros sed sagittis placerat, erat ex lobortis sem, ut pellentesque velit nisl ac est. Nulla mauris sapien, posuere hendrerit pulvinar a, molestie a orci. Suspendisse vitae risus augue. Nulla vel odio eget tellus sagittis pretium vitae nec enim. Fusce imperdiet, elit [g]maximus pellentesque tincidunt, mauris lacus ultrices massa, eget malesuada elit est et libero. Mauris vehicula urna augue, commodo varius sapien eleifend nec. Aenean ac lacinia nibh, faucibus scelerisque ligula. Sed tortor nisi, dictum ac augue et, auctor posuere ipsum. Curabitur condimentum urna [h]ut mi interdum porttitor. Fusce mi felis, hendrerit quis diam id, facilisis placerat nibh. Aliquam tempor lacus eget orci faucibus, id suscipit libero scelerisque. Nunc ultricies diam vitae vulputate mollis. Pellentesque ullamcorper placerat dui. Praesent lobortis vehicula augue ultricies interdum.
*Conclusion:* Curabitur eleifend ligula felis, ut condimentum lacus egestas nec. Suspendisse faucibus tempus maximus. Sed finibus facilisis ornare. Proin molestie interdum sapien at laoreet. Aenean sagittis dolor non volutpat fringilla. Etiam vulputate justo at orci pharetra condimentum. Mauris condimentum neque libero, in auctor lectus volutpat at. Pellentesque eros lacus, scelerisque eget dictum sed, porttitor sed elit. Morbi tristique nunc vel nunc consectetur, ut tincidunt tellus fermentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus venenatis quis leo quis bibendum. Suspendisse efficitur quam sit amet nisi dignissim sodales. Nullam ex nulla, sagittis a diam non, dapibus scelerisque libero. Fusce ac ante ac dolor congue eleifend eu quis sem. Donec molestie finibus tortor at ullamcorper.[z]
[a]This should be bolded
[b]Comment reply. Good idea!
[c]What happens to a multiple
line
comment?
[d]I don't think this spelling is correct
[e]How about we make this italics?
[f]Gratuitous comments
[g]More here
[h]Add some comments"
cleaned_text <- comment_to_comment(text)
print(cleaned_text)
[1] "*Background:*^[This should be bolded ] ^[Comment reply. Good idea! ] Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis maximus urna ac erat tincidunt fermentum. Nulla^[What happens to a multiple line comment? ] a accumsan enim. Aenean ^[I don't think this spelling is correct ] sed elit a nunc efficitur pharetra. Vivamus ultricies pretium lobortis. Nam bibendum mi vel eros congue, ac ultrices lorem dictum. Orci varius [p < .001] natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed vitae feugiat orci. Integer hendrerit enim nec odio condimentum ornare. Vestibulum nisl quam, porttitor in semper et, porta ac enim. Phasellus a nisl vulputate, [This is handwritten and has no matching comment tag - should not be extracted]luctus mi sit amet, tincidunt enim. Sed ac est pellentesque, aliquam lacus non, rutrum neque. Sed vestibulum magna sit amet ipsum vehicula mollis. Suspendisse orci magna, vulputate ut neque et, consequat aliquam dui.\n\n\n*Method:* ^[How about we make this italics? ] Praesent dapibus turpis in dictum aliquam. Maecenas ac molestie nunc. Nulla varius ultrices purus at blandit. Nulla dolor nisi, lacinia a ante eu, dictum semper nulla. Donec volutpat ultrices tempus. Proin non tristique metus, et tristique ante. Duis malesuada orci sit amet laoreet commodo. Donec faucibus vel erat tempus hendrerit. Vestibulum sit amet massa sit amet velit tempus dignissim. Etiam sed elit lacinia, euismod dui vitae, sagittis enim. Vestibulum ut eleifend orci, a semper massa. Quisque eu fringilla massa, at viverra nulla.^[Gratuitous comments ] \n\n\n*Results:* In laoreet, eros sed sagittis placerat, erat ex lobortis sem, ut pellentesque velit nisl ac est. Nulla mauris sapien, posuere hendrerit pulvinar a, molestie a orci. Suspendisse vitae risus augue. Nulla vel odio eget tellus sagittis pretium vitae nec enim. Fusce imperdiet, elit ^[More here ] maximus pellentesque tincidunt, mauris lacus ultrices massa, eget malesuada elit est et libero. Mauris vehicula urna augue, commodo varius sapien eleifend nec. Aenean ac lacinia nibh, faucibus scelerisque ligula. Sed tortor nisi, dictum ac augue et, auctor posuere ipsum. Curabitur condimentum urna ^[Add some comments] ut mi interdum porttitor. Fusce mi felis, hendrerit quis diam id, facilisis placerat nibh. Aliquam tempor lacus eget orci faucibus, id suscipit libero scelerisque. Nunc ultricies diam vitae vulputate mollis. Pellentesque ullamcorper placerat dui. Praesent lobortis vehicula augue ultricies interdum.\n\n\n*Conclusion:* Curabitur eleifend ligula felis, ut condimentum lacus egestas nec. Suspendisse faucibus tempus maximus. Sed finibus facilisis ornare. Proin molestie interdum sapien at laoreet. Aenean sagittis dolor non volutpat fringilla. Etiam vulputate justo at orci pharetra condimentum. Mauris condimentum neque libero, in auctor lectus volutpat at. Pellentesque eros lacus, scelerisque eget dictum sed, porttitor sed elit. Morbi tristique nunc vel nunc consectetur, ut tincidunt tellus fermentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus venenatis quis leo quis bibendum. Suspendisse efficitur quam sit amet nisi dignissim sodales. Nullam ex nulla, sagittis a diam non, dapibus scelerisque libero. Fusce ac ante ac dolor congue eleifend eu quis sem. Donec molestie finibus tortor at ullamcorper.[z]\n\n"
This seems to work, but I'm sure that there are more elegant solutions.
Related
I have a requirement to show image with a text together on same column where they both share same width. By default, text size will exceed image size if text is big enough. I manage to solve the issue by giving max-width style to span with some javascript code. I wonder is there a way to solve this issue without some Javascript black magic?
<link href="https://cdn.jsdelivr.net/npm/bootstrap#4.6.0/dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap#4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<div class="d-flex flex-column align-items-center">
<!-- LONG ASS TEXT START -->
<span class="flex-grow-1 flex-shrink-1 text-break"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam a nisi aliquet, tempus felis non, sollicitudin erat. Phasellus dapibus lobortis magna, at maximus dui tincidunt sit amet. Suspendisse fringilla gravida velit, id pharetra libero semper in. Proin in lacus dui. In ultricies suscipit tortor, vel pharetra arcu efficitur non. Donec sed quam tellus. Maecenas lacinia vehicula mauris, eget facilisis metus elementum ut. Aliquam ullamcorper nisl non nunc fermentum pellentesque. Sed at pretium ligula. Quisque sit amet metus porta, scelerisque ligula nec, vulputate tortor. Curabitur blandit, tellus efficitur sollicitudin imperdiet, risus quam molestie risus, a mattis orci mauris bibendum velit. Curabitur volutpat porttitor enim ut fringilla. Nunc sit amet odio bibendum, tempus nulla vulputate, cursus nisl. Praesent tincidunt turpis ac risus ultrices mollis. Phasellus ipsum arcu, pharetra ut lectus luctus, sollicitudin pretium purus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris sagittis maximus ex, in dapibus tellus rhoncus at. Etiam id vestibulum arcu. Aenean sed hendrerit dui, et vehicula mi. Donec posuere sapien ac bibendum lobortis. Phasellus dignissim tempus ante, id tincidunt dolor consequat ut. Morbi aliquam porttitor condimentum. Aenean auctor libero erat, pretium facilisis lacus pharetra id. Etiam ipsum enim, faucibus eu felis id, pharetra blandit lectus. Integer ut metus ac odio bibendum egestas. Suspendisse potenti. Aenean ut feugiat mi. Vestibulum commodo massa dolor, ut tincidunt diam posuere at. Ut quis vehicula nulla, in imperdiet erat. Duis sed eleifend magna. Donec vulputate, lectus vel convallis aliquam, odio justo semper odio, a vulputate ante mauris non nisl. Sed sollicitudin tortor sit amet porta vehicula. Fusce sodales lorem eu dolor sodales, eu scelerisque nisl imperdiet. Duis hendrerit ligula sed tellus finibus dignissim. Proin vitae nibh dictum lorem accumsan finibus sed quis est. In est metus, euismod aliquet posuere a, laoreet ut urna. Nullam nec mauris a metus blandit lobortis. Aenean sed volutpat dolor. Curabitur tristique ligula magna, non elementum orci suscipit rutrum. In efficitur tortor ut enim commodo, sed consequat lacus varius. Morbi lectus ante, suscipit nec metus egestas, iaculis semper nisi. Nam a faucibus arcu, sit amet blandit nulla. Ut leo risus, suscipit id rhoncus et, posuere vitae diam. Cras et porttitor nibh, vel ornare lacus. Etiam nec lectus nunc. Maecenas scelerisque purus sed ex gravida volutpat. Nam vehicula tortor diam, et eleifend orci maximus accumsan. Donec gravida turpis ut interdum rutrum. Phasellus non lobortis quam. Sed quis laoreet lectus. Curabitur eu faucibus massa. Fusce feugiat arcu nec ante ultricies vulputate. Mauris gravida finibus nisl. Fusce suscipit blandit erat nec gravida. Vivamus auctor dapibus augue, sit amet porttitor diam tempor eu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Quisque condimentum eleifend posuere. Aliquam porttitor odio a tincidunt varius. Proin id semper orci. Suspendisse potenti. Aliquam fringilla laoreet cursus. Vestibulum dictum urna in sem elementum, sed lacinia eros tincidunt. </span>
<!-- LONG ASS TEXT END -->
<!-- IMAGE START -->
<img src="https://www.englishclub.com/images/esl-exams/toeic_office.jpg" class="img-fluid" alt="..."></div>
https://jsfiddle.net/p315wutg/
I have a text file with 100 articles. Each article ends with word Document followed by a space and then an alphanumeric. The alphanumeric is 25 characters long.
Examples of how four article ends.The alphanumeric has no set pattern.
Document AFNR000020161206ecc700006
Document TEKMET0020161202ecc200008
Document AFNR000020161130ecc10001o
Document AFNR000020161127ecbs00018
My code to read Text file in R and split text files
textfile <- "Text.txt"
TextData <-readLines(textfile)
head(TextData)
length(TextData)
nchar(TextData)
TextData = strsplit(TextData, "<Document>" "[a-zA-Z0-9]")
I am stuck with using strsplit to create a split across Document alphanumeric.
Once I split I can create a corpus:
library(tm)
doc.vec <- VectorSource(TextData)
corpusDoc <- Corpus(doc.vec)
summary(corpusDoc)
Thank you
It's not entirely clear what your data looks like, but assuming it is just one long string and the "Document alphanumeric code" is in line with the rest of the text, the following should work:
# mock data
TextData <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sapien eu leo rutrum, non commodo metus auctor. Quisque id libero quis augue bibendum auctor sed vel odio. Aliquam quam odio, maximus vitae elit at, pharetra volutpat nulla. Nam iaculis mattis lectus, sit amet euismod neque ornare consectetur. Cras nec nibh sit amet massa laoreet tempor sit amet in sem. Sed pulvinar sapien risus, molestie cursus augue rhoncus sed. Donec ullamcorper tellus vel tortor finibus pretium. Sed non tristique nisi. Document AFNR000020161206ecc700006 Vestibulum quis risus pulvinar elit blandit faucibus sed et massa. Phasellus non arcu vulputate, aliquam felis sit amet, pellentesque lorem. Praesent ut felis pellentesque, tincidunt risus imperdiet, vehicula ante. Donec odio sapien, vulputate sed semper at, pharetra sit amet dui. Fusce aliquam ullamcorper nunc in ullamcorper. Suspendisse vitae ex aliquam turpis vestibulum semper at ut quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam varius, risus sed feugiat mollis, nunc urna hendrerit mi, eu cursus erat mi quis ligula. Maecenas sit amet sagittis tellus. Donec ultricies faucibus ipsum id mattis. Ut lacinia, diam nec dignissim vestibulum, nibh augue tincidunt dolor, eu dictum felis augue in elit. Sed et scelerisque felis. Document TEKMET0020161202ecc200008 Aenean ut erat mattis, convallis orci eget, tincidunt massa. Integer dictum in erat et ornare. Donec et cursus eros. Aenean condimentum erat in lacus dictum, ac convallis tortor venenatis. Donec luctus dapibus aliquam. Maecenas et ipsum ac lacus convallis luctus. Phasellus volutpat risus sit amet volutpat vestibulum. Vestibulum eu elit sed massa imperdiet congue id interdum odio. Document AFNR000020161130ecc10001o Proin et accumsan nisi. Suspendisse tempus accumsan mollis. Integer aliquam fermentum consequat. Nunc sit amet suscipit tellus, in fringilla diam. Nulla rutrum elit nec blandit varius. Praesent vehicula nibh orci, nec facilisis sem vulputate non. Cras vel ipsum eleifend, vulputate ante congue, facilisis ligula. Integer ac mollis nibh. Ut vitae lacus eget mauris ultrices iaculis non eget diam. Praesent placerat lorem id ante maximus cursus. Ut quis lacus nec turpis tincidunt sagittis lacinia at tortor. Cras vitae posuere diam. Maecenas ut convallis lacus, in commodo neque. Sed rhoncus cursus arcu, nec pharetra odio lacinia quis. Sed nec neque libero. Etiam sit amet purus eros. Document AFNR000020161127ecbs0001"
# split on desired string
TextData <- strsplit(TextData, "Document [a-zA-Z0-9]{25}")
# if you want it as a vecotr
TextData <- unlist(TextData)
Seems like the problem was with the way you defined the regular expression in your strsplit function.
I've been wondering if this is possible. A block of text surrounding an image. In this case it is circlular. I have been able to nudge text to the side using the shape but not entirely encase it.
I have only managed to find one example and I was unable to recreate it from the example actually given:
I don't know a way of wrapping text around a cicle the way it is done in your mokup. As commented, for a better user experience, the text should be seperated in two paragraphs and wrapped on each side of the circle. In this configuration you can wrap the text around the circle. But beware this solution has very poor browser support.
This approach uses the shape-outside property as shown in this answer and will only work in modern webkit browsers :
DEMO
body{margin:0;padding:20px;width:830px;margin:0 auto;}
p{
width:400px;
margin-right:15px;
text-align:justify;
overflow:hidden;
float:left;
}
p:before{
content:'';
width: 200px;
height: 600px;
}
#left:before{
float:right;
shape-outside: circle(40% at 100% 50%);
}
#right:before{
float:left;
shape-outside: circle(40% at 0 50%);
}
<p id="left">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac quam dignissim, tristique eros eget, aliquam nulla. Pellentesque dapibus mattis massa, eu dapibus arcu commodo vel. Vestibulum id suscipit felis, nec malesuada lacus. Nam lacinia elementum mauris ut lacinia. Nulla sed congue mi, in vehicula sapien. Nulla at ipsum sed metus feugiat interdum. In ultricies sem nec facilisis tincidunt. Suspendisse commodo ex sed ullamcorper gravida. Mauris velit mauris, egestas et est sit amet, ultricies mollis ipsum. Nunc sit amet quam ac nibh molestie porttitor sit amet sit amet ante. Mauris sollicitudin sit amet ligula non gravida. Curabitur auctor sollicitudin ante, ut rhoncus massa. Ut eu iaculis orci. Aliquam sit amet tortor tellus. Quisque iaculis tellus varius pellentesque blandit. Aenean sed sapien et ex vehicula bibendum. Proin nec orci id mauris semper facilisis. Vivamus massa purus, commodo et ullamcorper dignissim, dictum vitae tellus. Duis vel lacus posuere, pulvinar felis sit amet, viverra enim. Sed elementum eros et sem luctus, sed volutpat metus finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam sodales tincidunt rhoncus. Pellentesque felis dolor, tempus ac ex ac, dictum lacinia ligula. Quisque ornare hendrerit erat, tincidunt dignissim quam auctor id. Duis pellentesque enim in ante pretium luctus. Morbi dignissim enim sollicitudin augue venenatis, porta sodales tortor auctor. Mauris tincidunt dui at lectus commodo cursus. In bibendum ac nunc accumsan porta. Aliquam ac sem vitae ligula pellentesque pulvinar non in velit. In molestie diam eu vulputate iaculis. Mauris fermentum, elit sit amet tincidunt tempor, lorem arcu iaculis leo, aliquam feugiat nulla eros eu enim. Pellentesque hendrerit magna ut ligula ultricies, in euismod sapien luctus. Suspendisse potenti. Vestibulum porta malesuada egestas. Cras vehicula est a purus tempus, eu volutpat diam tempus. Integer eu est faucibus, pulvinar eros at, porta enim. Aenean nec lorem nec arcu fringilla lacinia vitae non quam. Nullam ultrices, felis vitae hendrerit luctus, mi turpis tincidunt ex, eget pulvinar nulla turpis quis tellus. Phasellus nec lorem vel turpis consectetur viverra. Cras a tellus mi. Pellentesque congue sodales orci. Curabitur at facilisis nunc. Donec vel congue metus. Suspendisse id dui leo. Aenean sed dolor aliquet, molestie justo et, sodales risus. Proin ornare sagittis lectus quis condimentum.</p>
<p id="right">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac quam dignissim, tristique eros eget, aliquam nulla. Pellentesque dapibus mattis massa, eu dapibus arcu commodo vel. Vestibulum id suscipit felis, nec malesuada lacus. Nam lacinia elementum mauris ut lacinia. Nulla sed congue mi, in vehicula sapien. Nulla at ipsum sed metus feugiat interdum. In ultricies sem nec facilisis tincidunt. Suspendisse commodo ex sed ullamcorper gravida. Mauris velit mauris, egestas et est sit amet, ultricies mollis ipsum. Nunc sit amet quam ac nibh molestie porttitor sit amet sit amet ante. Mauris sollicitudin sit amet ligula non gravida. Curabitur auctor sollicitudin ante, ut rhoncus massa. Ut eu iaculis orci. Aliquam sit amet tortor tellus. Quisque iaculis tellus varius pellentesque blandit. Aenean sed sapien et ex vehicula bibendum. Proin nec orci id mauris semper facilisis. Vivamus massa purus, commodo et ullamcorper dignissim, dictum vitae tellus. Duis vel lacus posuere, pulvinar felis sit amet, viverra enim. Sed elementum eros et sem luctus, sed volutpat metus finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam sodales tincidunt rhoncus. Pellentesque felis dolor, tempus ac ex ac, dictum lacinia ligula. Quisque ornare hendrerit erat, tincidunt dignissim quam auctor id. Duis pellentesque enim in ante pretium luctus. Morbi dignissim enim sollicitudin augue venenatis, porta sodales tortor auctor. Mauris tincidunt dui at lectus commodo cursus. In bibendum ac nunc accumsan porta. Aliquam ac sem vitae ligula pellentesque pulvinar non in velit. In molestie diam eu vulputate iaculis. Mauris fermentum, elit sit amet tincidunt tempor, lorem arcu iaculis leo, aliquam feugiat nulla eros eu enim. Pellentesque hendrerit magna ut ligula ultricies, in euismod sapien luctus. Suspendisse potenti. Vestibulum porta malesuada egestas. Cras vehicula est a purus tempus, eu volutpat diam tempus. Integer eu est faucibus, pulvinar eros at, porta enim. Aenean nec lorem nec arcu fringilla lacinia vitae non quam. Nullam ultrices, felis vitae hendrerit luctus, mi turpis tincidunt ex, eget pulvinar nulla turpis quis tellus. Phasellus nec lorem vel turpis consectetur viverra. Cras a tellus mi. Pellentesque congue sodales orci. Curabitur at facilisis nunc. Donec vel congue metus. Suspendisse id dui leo. Aenean sed dolor aliquet, molestie justo et, sodales risus. Proin ornare sagittis lectus quis condimentum.</p>
I got stuck on need to store a data from multiline textbox to sql server database and write a code like this
ASP.NET
<asp:TextBox ID="txtProductFeatures" runat="server" CssClass="full-width-input" TextMode="multiline" Rows="10"></asp:TextBox>
CODE BEHIND
cmd.Parameters.AddWithValue("#ProductFeatures", txtProductFeatures.Text.Replace("\r\n", "<br />"))
i tried to store lorem
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ultrices luctus semper. Mauris facilisis ac mauris id commodo. Cras non efficitur magna, non sollicitudin erat. Maecenas blandit nisl a est mollis, eu luctus mi euismod. Mauris aliquam lorem nec risus vehicula, vel faucibus ante tincidunt. Sed erat odio, fermentum at nulla ut, fringilla gravida orci. Quisque interdum, massa sed laoreet auctor, ipsum nisi ornare libero, a dignissim risus nunc ac magna. Suspendisse tortor mi, blandit id ipsum ac, mattis finibus metus. Morbi euismod eleifend odio et dictum. In semper sit amet mauris et gravida. Suspendisse vitae pharetra mi, ac posuere tortor. Proin enim nisl, pretium ac ipsum sed, vulputate viverra purus. Aliquam nec est et ante rutrum sollicitudin. Etiam tempor velit erat, non ultricies eros varius vitae. Proin consequat tempor diam, sed imperdiet metus ullamcorper nec. Morbi ut molestie lectus.
In tincidunt egestas odio a luctus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin aliquam quam feugiat aliquam dictum. Proin massa eros, accumsan vel faucibus eget, commodo quis tortor. Vivamus quam odio, porttitor eu massa eget, tincidunt lobortis libero. Fusce congue ultricies tellus pulvinar sagittis. Aenean quis lectus eu nulla porta iaculis eget et nisi.
Aenean congue diam neque, tempus tincidunt urna consequat ut. Aenean maximus lectus eu tellus molestie, nec auctor est dapibus. Nullam bibendum sed est sed euismod. Nunc consectetur, orci a aliquam condimentum, lectus neque vehicula sem, nec aliquam enim neque sit amet leo. Morbi nulla augue, mollis eget nunc eget, commodo fringilla est. Quisque pretium vehicula tincidunt. Praesent malesuada massa vel erat faucibus, vel tempor sapien fringilla. Aliquam lacinia, sapien ut dictum laoreet, tellus sem sollicitudin justo, volutpat tristique libero risus nec purus. Morbi ornare erat a justo gravida malesuada. Nullam placerat erat nunc, vel aliquet neque massa nunc.
And they're show just
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi faucibus ultricies aliquet. Suspendisse nunc tellus, finibus et l
i tried a few trick and code on stack but it doesn't matter
datatype in Database is = NVARCHAR(MAX)
try this
When DataType is NVARCHAR(MAX) You Need to Use -1 as Max Size
cmd.Parameters.Add("#ProductFeatures", SqlDbType.NVarChar,
-1).Value=txtProductFeatures.Text.Replace("\r\n", "<br />");
Read This:
can-we-stop-using-addwithvalue-already
I'd like to add a simple separator line in an aspx web form.
Does anyone know how? It sounds easy enough, but still I can't manage to find
how to do it..
10x!
A horizontal rule <hr /> ?
Try the following:
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nisi arcu, rutrum vel dignissim ac, elementum eu ligula. Mauris faucibus mi sit amet lectus consequat ut lacinia quam fermentum. Donec urna massa, porttitor ac blandit ut, mattis in risus. Ut eget nunc imperdiet nisi ultricies gravida. Integer suscipit ultrices elit, id elementum diam pharetra semper. Nullam tincidunt, tellus id tincidunt sodales, libero sapien porttitor ligula, rhoncus rhoncus eros mauris vel arcu. Proin ullamcorper tellus et purus adipiscing id luctus purus lacinia. Quisque lobortis, enim nec mattis adipiscing, arcu ante tempus eros, vitae sodales nulla urna eget sapien. Cras dui risus, eleifend molestie vulputate eu, varius ut libero. Vivamus consectetur dapibus adipiscing. Cras porta pulvinar felis. Praesent quis velit massa, non interdum neque. Quisque metus quam, tincidunt eu iaculis quis, auctor sed justo.
<hr/>
Nam vitae dui ipsum, id varius urna. Vivamus consequat auctor neque, ac vulputate tellus luctus sit amet. Maecenas vitae libero libero. Nulla et lacus in ante placerat ullamcorper. Pellentesque a erat sapien, convallis rutrum est. In luctus magna a lorem lobortis vel malesuada turpis dictum. Nam condimentum nunc in nunc tincidunt tincidunt. Etiam iaculis lectus at urna faucibus quis facilisis enim imperdiet. Phasellus sit amet viverra nisi. Cras tincidunt enim vel velit cursus elementum. Fusce sodales odio ac erat tincidunt ullamcorper tempor libero interdum. Curabitur a eros ligula. Phasellus sollicitudin dolor cursus lorem porttitor mollis. Nulla non sapien odio, et consectetur nisl. Curabitur convallis bibendum lacus eleifend imperdiet.
</div>
If you want to control its thickness and color, use a style:
<div style="border-top:1px solid red;"/>