Replace kí tự xuống dòng trong file Word bằng `. `

Em có tập tành làm add-in cho word. Bắt đầu bằng những thứ đơn giản thế này:

  • em có một file word có nội dung như sau:
    Dạy nhau học 1
    Dạy nhau học 2
    Dạy nhau học 3
    Dạy nhau học 4
    Dạy nhau học 5
  • giờ em muốn dồn tất cả các dòng về làm một tức là sẽ thế này: Dạy nhau học 1. Dạy nhau học 2. Dạy nhau học 3. Dạy nhau học 4. Dạy nhau học 5.
  • Em đã thử dùng:
Word.Range rang = Globals.ThisAddIn.Application.ActiveDocument.Range();
rang = rang.Text.Replace("\n", ". ");

tuy nhiên vẫn không được, không thấy động tĩnh gì. em có thử replace một số chữ cái như thay “D” thành “C” thì vẫn ok. Mong các bác chỉ giúp ạ. Em cảm ơn nhiều!!!

Hay thử:

rang = rang.Text.Replace("\r\n", ". ");

Em đã thử như bác rồi ạ, vẫn ko lên đc 1 dòng, thử cái khác lại đc ạ

  // Environment.NewLine sẽ giúp nó biết đây là xuống dòng
  rang = rang.Text.Replace(Environment.NewLine,". ");
  rang+=".";

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

2 Likes

Liệu có phải là Replace ("^p", ".") như trong Find and Replace :))

1 Like

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

1 Like

Bác chỉ em chủ đề giống thế này mà đã đc giải quyết với, nói thật em tìm rồi không thấy.

bạn copy hết ra nodepad++ rồi replace, sau đó paste lại vô word nhé.

1 Like

Mình tìm ra cách làm chay trên MS Word, chắc bạn sẽ làm được trên C# thôi.

  • Ví dụ input, có cả line break và paragraph break:

image

  • Ấn Ctrl + H (Find & Replace)

  • Bật Use Wildcard (tìm kiếm giống regex).

  • Gõ vào ô tìm kiếm (như hình).

image

  • Chú giải:

    • ^11: line break
    • ^13: paragraph break
  • Ấn Replace All, và tada :tada:

image

Đọc 2 link này nè:

https://wordmvp.com/FAQs/General/UsingWildcards.htm


^l^p vào box Find What thì MS Word không cho đâu. Đổi thành ^11^13 mới được :smile:

4 Likes

cảm ơn bác, tuy chưa được nhưng có vẻ đi theo hướng này sẽ được

String.ReplaceAll nhận tham số chuỗi chứ đâu phải Regex.

rang.ReplaceAll((char)11+"", ". ");
// hoặc
rang.ReplaceAll("\v", ". ");
2 Likes

cảm ơn bác, em đã thành công

Cảm ơn tất cả các bác đã hỗ trợ em, em đã làm được rồi ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?