手机老是手机一直显示耳机模式式怎么办

& R语言字符串处理包stringr
R语言字符串处理包stringr
,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。
R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。
要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让我们一起动起来吧,开始R的极客理想。
关于作者:
张丹(Conan), 程序员Java,R,PHP,Javascript
weibo:@Conan_Z
转载请注明出处:
用R语言处理字符串,总觉得很麻烦,即不能用向量的方法进行分割,也不能用循环遍历索引。grep()家族函数常常记不住,paste()函数默认以空格分割,各种不顺手啊!随着使用R语言的场景越来越多,字符串处理是必不可少的。给大家推荐一个由 Hadley Wickham 开发的一个灵活的字符串处理包stringr。
stringr介绍
stringr安装
stringr的API介绍
1. stringr介绍
stringr包被定义为一致的、简单易用的字符串工具集。所有的函数和参数定义都具有一致性,比如,用相同的方法进行NA处理和0长度的向量处理。
字符串处理虽然不是R语言中最主要的功能,却也是必不可少的,数据清洗、可视化等的操作都会用到。对于R语言本身的base包提供的字符串基础函数,随着时间的积累,已经变得很多地方不一致,不规范的命名,不标准的参数定义,很难看一眼就上手使用。字符串处理在其他语言中都是非常方便的事情,R语言在这方面确实落后了。stringr包就是为了解决这个问题,让字符串处理变得简单易用,提供友好的字符串操作接口。
stringr的项目主页:
2. stringr安装
本文所使用的系统环境
Win10 64bit
R: 3.2.3 x86_64-w64-mingw32/x64 b4bit
stringr是在CRAN发布的标准库,安装起来非常简单,2条命令就可以了。
> install.packages('stringr')
> library(stringr)
3. stringr的API介绍
stringr包1.0.0版本,一共提供了30个函数,方便我们对字符串处理。常用的字符串的处理以str_开头来命名,方便更直观理解函数的定义。我们可以根据使用习惯对函数进行分类:
字符串拼接函数
str_c: 字符串拼接。
str_join: 字符串拼接,同str_c。
str_trim: 去掉字符串的空格和TAB(\t)
str_pad: 补充字符串的长度
str_dup: 复制字符串
str_wrap: 控制字符串输出格式
str_sub: 截取字符串
str_sub<- 截取字符串,并赋值,同str_sub
字符串计算函数
str_count: 字符串计数
str_length: 字符串长度
str_sort: 字符串值排序
str_order: 字符串索引排序,规则同str_sort
字符串匹配函数
str_split: 字符串分割
str_split_fixed: 字符串分割,同str_split
str_subset: 返回匹配的字符串
word: 从文本中提取单词
str_detect: 检查匹配字符串的字符
str_match: 从字符串中提取匹配组。
str_match_all: 从字符串中提取匹配组,同str_match
str_replace: 字符串替换
str_replace_all: 字符串替换,同str_replace
str_replace_na:把NA替换为NA字符串
str_locate: 找到匹配的字符串的位置。
str_locate_all: 找到匹配的字符串的位置,同str_locate
str_extract: 从字符串中提取匹配字符
str_extract_all: 从字符串中提取匹配字符,同str_extract
字符串变换函数
str_conv: 字符编码转换
str_to_upper: 字符串转成大写
str_to_lower: 字符串转成小写,规则同str_to_upper
str_to_title: 字符串转成首字母大写,规则同str_to_upper
参数控制函数,仅用于构造功能的参数,不能独立使用。
boundary: 定义使用边界
coll: 定义字符串标准排序规则。
fixed: 定义用于匹配的字符,包括正则表达式中的转义符
regex: 定义正则表达式
3.1 字符串拼接函数
3.1.1 str_c,字符串拼接操作,与str_join完全相同,与paste()行为不完全一致。
函数定义:
str_c(..., sep = "", collapse = NULL)
str_join(..., sep = "", collapse = NULL)
参数列表:
&#8230;: 多参数的输入
sep: 把多个字符串拼接为一个大的字符串,用于字符串的分割符。
collapse: 把多个向量参数拼接为一个大的字符串,用于字符串的分割符。
把多个字符串拼接为一个大的字符串。
> str_c('a','b')
> str_c('a','b',sep='-')
> str_c(c('a','a1'),c('b','b1'),sep='-')
把多个向量参数拼接为一个大的字符串。
> str_c(head(letters), collapse = "")
[1] "abcdef"
> str_c(head(letters), collapse = ", ")
[1] "a, b, c, d, e, f"
# collapse参数,对多个字符串无效
> str_c('a','b',collapse = "-")
> str_c(c('a','a1'),c('b','b1'),collapse='-')
[1] "ab-a1b1"
拼接有NA值的字符串向量时,NA还是NA
> str_c(c("a", NA, "b"), "-d")
[1] "a-d" NA
对比str_c()函数和paste()函数之间的不同点。
# 多字符串拼接,默认的sep参数行为不一致
> str_c('a','b')
> paste('a','b')
# 向量拼接字符串,collapse参数的行为一致
> str_c(head(letters), collapse = "")
[1] "abcdef"
> paste(head(letters), collapse = "")
[1] "abcdef"
#拼接有NA值的字符串向量,对NA的处理行为不一致
> str_c(c("a", NA, "b"), "-d")
[1] "a-d" NA
> paste(c("a", NA, "b"), "-d")
[1] "a -d"
"NA -d" "b -d"
3.1.2 str_trim:去掉字符串的空格和TAB(\t)
函数定义:
str_trim(string, side = c("both", "left", "right"))
参数列表:
string: 字符串,字符串向量。
side: 过滤方式,both两边都过滤,left左边过滤,right右边过滤
去掉字符串的空格和TAB(\t)
#只过滤左边的空格
> str_trim("
left space\t\n",side='left')
[1] "left space\t\n"
#只过滤右边的空格
> str_trim("
left space\t\n",side='right')
left space"
#过滤两边的空格
> str_trim("
left space\t\n",side='both')
[1] "left space"
#过滤两边的空格
> str_trim("\nno space\n\t")
[1] "no space"
3.1.3 str_pad:补充字符串的长度
函数定义:
str_pad(string, width, side = c("left", "right", "both"), pad = " ")
参数列表:
string: 字符串,字符串向量。
width: 字符串填充后的长度
side: 填充方向,both两边都填充,left左边填充,right右边填充
pad: 用于填充的字符
补充字符串的长度。
# 从左边补充空格,直到字符串长度为20
> str_pad("conan", 20, "left")
# 从右边补充空格,直到字符串长度为20
> str_pad("conan", 20, "right")
[1] "conan
# 从左右两边各补充空格,直到字符串长度为20
> str_pad("conan", 20, "both")
# 从左右两边各补充x字符,直到字符串长度为20
> str_pad("conan", 20, "both",'x')
[1] "xxxxxxxconanxxxxxxxx"
3.1.4 str_dup: 复制字符串
函数定义:
str_dup(string, times)
参数列表:
string: 字符串,字符串向量。
times: 复制数量
复制一个字符串向量。
str_dup(val, 2)
[1] "abca4abca4" "123123"
"cba2cba2"
# 按位置复制
> str_dup(val, 1:3)
[1] "abca4"
"cba2cba2cba2"
3.1.5 str_wrap,控制字符串输出格式
函数定义:
str_wrap(string, width = 80, indent = 0, exdent = 0)
参数列表:
string: 字符串,字符串向量。
width: 设置一行所占的宽度。
indent: 段落首行的缩进值
exdent: 段落非首行的缩进值
txt cat(str_wrap(txt, width = 40), "\n")
R语言作为统计学一门语言,一直在小众领域
闪耀着光芒。直到大数据的爆发,R语言变成
了一门炙手可热的数据分析的利器。随着越来
越多的工程背景的人的加入,R语言的社区在
迅速扩大成长。现在已不仅仅是统计领域,教
育,银行,电商,互联网….都在使用R语言。
# 设置宽度为60字符,首行缩进2字符
> cat(str_wrap(txt, width = 60, indent = 2), "\n")
R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数
据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来
越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已
不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。
# 设置宽度为10字符,非首行缩进4字符
> cat(str_wrap(txt, width = 10, exdent = 4), "\n")
耀着光芒。
直到大数据
语言变成了
一门炙手可
热的数据分
析的利器。
越多的工程
背景的人的
言的社区在
迅速扩大成
长。现在已
不仅仅是统
计领域,教
育,银行,
电商,互联
网….都在使
3.1.6 str_sub,截取字符串
函数定义:
str_sub(string, start = 1L, end = -1L)
参数列表:
string: 字符串,字符串向量。
start : 开始位置
end : 结束位置
截取字符串。
str_sub(txt, 1, 4)
[1] "I am"
# 截取1-6的索引位置的字符串
> str_sub(txt, end=6)
[1] "I am C"
# 截取6到结束的索引位置的字符串
> str_sub(txt, 6)
[1] "Conan."
# 分2段截取字符串
> str_sub(txt, c(1, 4), c(6, 8))
[1] "I am C" "m Con"
# 通过负坐标截取字符串
> str_sub(txt, -3)
> str_sub(txt, end = -3)
[1] "I am Cona"
对截取的字符串进行赋值。
str_sub(x, 1, 1)
str_sub(x, 2, -2) <- "2345"; x
[1] "12345C"
3.2 字符串计算函数
3.2.1 str_count, 字符串计数
函数定义:
str_count(string, pattern = "")
参数列表:
string: 字符串,字符串向量。
pattern: 匹配的字符。
对字符串中匹配的字符计数
> str_count('aaa444sssddd', "a")
对字符串向量中匹配的字符计数
str_count(fruit, "a")
[1] 1 3 1 1
> str_count(fruit, "p")
[1] 2 0 1 3
对字符串中的'.'字符计数,由于.是正则表达式的匹配符,直接判断计数的结果是不对的。
> str_count(c("a.", ".", ".a.",NA), ".")
# 用fixed匹配字符
> str_count(c("a.", ".", ".a.",NA), fixed("."))
# 用\\匹配字符
> str_count(c("a.", ".", ".a.",NA), "\\.")
3.2.2 str_length,字符串长度
函数定义:
str_length(string)
参数列表:
string: 字符串,字符串向量。
计算字符串的长度:
> str_length(c("I", "am", "张丹", NA))
3.2.3 str_sort, 字符串值排序,同str_order索引排序
函数定义:
str_sort(x, decreasing = FALSE, na_last = TRUE, locale = "", ...)
str_order(x, decreasing = FALSE, na_last = TRUE, locale = "", ...)
参数列表:
x: 字符串,字符串向量。
decreasing: 排序方向。
na_last:NA值的存放位置,一共3个值,TRUE放到最后,FALSE放到最前,NA过滤处理
locale:按哪种语言习惯排序
对字符串值进行排序。
# 按ASCII字母排序
> str_sort(c('a',1,2,'11'), locale = "en")
# 倒序排序
> str_sort(letters,decreasing=TRUE)
[1] "z" "y" "x" "w" "v" "u" "t" "s" "r" "q" "p" "o" "n" "m" "l" "k" "j" "i" "h"
[20] "g" "f" "e" "d" "c" "b" "a"
# 按拼音排序
> str_sort(c('你','好','粉','丝','日','志'),locale = "zh")
[1] "粉" "好" "你" "日" "丝" "志"
对NA值的排序处理
#把NA放最后面
> str_sort(c(NA,'1',NA),na_last=TRUE)
[1] "1" NA
#把NA放最前面
> str_sort(c(NA,'1',NA),na_last=FALSE)
> str_sort(c(NA,'1',NA),na_last=NA)
3.3 字符串匹配函数
3.3.1 str_split,字符串分割,同str_split_fixed
函数定义:
str_split(string, pattern, n = Inf)
str_split_fixed(string, pattern, n)
参数列表:
string: 字符串,字符串向量。
pattern: 匹配的字符。
n: 分割个数
对字符串进行分割。
s1 s2 class(s1)
[1] "list"
# 用str_split_fixed()函数分割,结果类型是matrix
> s3 class(s3)
[1] "matrix"
3.3.2 str_subset:返回的匹配字符串
函数定义:
str_subset(string, pattern)
参数列表:
string: 字符串,字符串向量。
pattern: 匹配的字符。
str_subset(val, "a")
[1] "abc" "cba"
# 开头匹配
> str_subset(val, "^a")
# 结尾匹配
> str_subset(val, "a$")
3.3.3 word, 从文本中提取单词
函数定义:
word(string, start = 1L, end = start, sep = fixed(" "))
参数列表:
string: 字符串,字符串向量。
start: 开始位置。
end: 结束位置。
sep: 匹配字符。
word(val, 1)
"http://fens.me,"
> word(val, -1)
[1] "Conan." "ok"
> word(val, 2, -1)
[1] "am Conan." "ok"
# 以,分割,取第一个位置的字符串
> val word(val, 1, sep = fixed(','))
> word(val, 3, sep = fixed(','))
3.3.4 str_detect匹配字符串的字符
函数定义:
str_detect(string, pattern)
参数列表:
string: 字符串,字符串向量。
pattern: 匹配字符。
str_detect(val, "a")
TRUE FALSE
# 检查字符串向量,是否以a为开头
> str_detect(val, "^a")
TRUE FALSE FALSE
# 检查字符串向量,是否以a为结尾
> str_detect(val, "a$")
[1] FALSE FALSE FALSE
3.3.6 str_match,从字符串中提取匹配组
函数定义:
str_match(string, pattern)
str_match_all(string, pattern)
参数列表:
string: 字符串,字符串向量。
pattern: 匹配字符。
从字符串中提取匹配组
str_match(val, "a")
# 匹配字符0-9,限1个,并返回对应的字符
> str_match(val, "[0-9]")
# 匹配字符0-9,不限数量,并返回对应的字符
> str_match(val, "[0-9]*")
[2,] "123"
从字符串中提取匹配组,以字符串matrix格式返回
> str_match_all(val, "a")
> str_match_all(val, "[0-9]")
3.3.7 str_replace,字符串替换
函数定义:
str_replace(string, pattern, replacement)
参数列表:
string: 字符串,字符串向量。
pattern: 匹配字符。
replacement: 用于替换的字符。
str_replace(val, "[ab]", "-")
[1] "-bc" "123" "c-a"
# 把目标字符串所有出现的a或b,替换为-
> str_replace_all(val, "[ab]", "-")
[1] "--c" "123" "c--"
# 把目标字符串所有出现的a,替换为被转义的字符
> str_replace_all(val, "[a]", "\1\1")
[1] "\001\001bc" "123"
"cb\001\001"
3.3.8 str_replace_na把NA替换为NA字符串
函数定义:
str_replace_na(string, replacement = "NA")
参数列表:
string: 字符串,字符串向量。
replacement : 用于替换的字符。
把NA替换为字符串
> str_replace_na(c(NA,'NA',"abc"),'x')
3.3.9 str_locate,找到的模式在字符串中的位置。
函数定义:
str_locate(string, pattern)
str_locate_all(string, pattern)
参数列表:
string: 字符串,字符串向量。
pattern: 匹配字符。
str_locate(val, "a")
# 用向量匹配
> str_locate(val, c("a", 12, "b"))
# 以字符串matrix格式返回
> str_locate_all(val, "a")
# 匹配a或b字符,以字符串matrix格式返回
> str_locate_all(val, "[ab]")
3.3.10 str_extract从字符串中提取匹配模式
函数定义:
str_extract(string, pattern)
str_extract_all(string, pattern, simplify = FALSE)
参数列表:
string: 字符串,字符串向量。
pattern: 匹配字符。
simplify: 返回值,TRUE返回matrix,FALSE返回字符串向量
str_extract(val, "\\d")
[1] "4" "1" "2"
# 返回匹配的字符
> str_extract(val, "[a-z]+")
[1] "abca" NA
str_extract_all(val, "\\d")
[1] "1" "2" "3"
> str_extract_all(val, "[a-z]+")
[1] "abca"
character(0)
3.4 字符串变换函数
3.4.1 str_conv:字符编码转换
函数定义:
str_conv(string, encoding)
参数列表:
string: 字符串,字符串向量。
encoding: 编码名。
对中文进行转码处理。
# 把中文字符字节化
str_conv(x, "GBK")
[1] "你好"
> str_conv(x, "GB2312")
[1] "你好"
# 转UTF-8失败
> str_conv(x, "UTF-8")
Warning messages:
1: In stri_conv(string, encoding, "UTF-8") :
input data \xffffffc4 in current source encoding could not be converted to Unicode
2: In stri_conv(string, encoding, "UTF-8") :
input data \xffffffe3\xffffffba in current source encoding could not be converted to Unicode
3: In stri_conv(string, encoding, "UTF-8") :
input data \xffffffc3 in current source encoding could not be converted to Unicode
把unicode转UTF-8
str_conv(x1, "UTF-8")
[1] "北京"
3.4.2 str_to_upper,字符串大写转换。
函数定义:
str_to_upper(string, locale = "")
str_to_lower(string, locale = "")
str_to_title(string, locale = "")
参数列表:
string: 字符串。
locale:按哪种语言习惯排序
字符串大写转换:
str_to_upper(val)
[1] "I AM CONAN. WELCOME TO MY BLOG! HTTP://FENS.ME"
> str_to_lower(val)
[1] "i am conan. welcome to my blog! http://fens.me"
# 首字母大写
> str_to_title(val)
[1] "I Am Conan. Welcome To My Blog! Http://Fens.Me"
字符串在平常的数据处理中经常用过,需要对字符串进行分割、连接、转换等操作,本篇中通过介绍stringr,灵活的字符串处理库,可以有效地提高代码的编写效率。有了好的工具,在用R语言处理字符串就顺手了。
转载请注明出处:
This entry was posted in
Designed byLinux内核中提供的一些字符串转换函数:lib/vsprintf.c[html]&view plaincopy&1.&unsigned&long&long&simple_strtoull(const&char&*cp,&char&**endp,&unsigned&int&base)&&&&&2.&unsigned&long&simple_strtoul(const&char&*cp,&char&**endp,&unsigned&int&base)&&&&&3.&long&simple_strtol(const&char&*cp,&char&**endp,&unsigned&int&base)&&&&&4.&long&long&simple_strtoll(const&char&*cp,&char&**endp,&unsigned&int&base)&&&&&5.&int&strict_strtoul(const&char&*cp,&unsigned&int&base,&unsigned&long&*res)&&&&&6.&int&strict_strtol(const&char&*cp,&unsigned&int&base,&long&*res)&&&&&7.&int&strict_strtoull(const&char&*cp,&unsigned&int&base,&unsigned&long&long&*res)&&&&&8.&int&strict_strtoll(const&char&*cp,&unsigned&int&base,&long&long&*res)&&&&&9.&int&sprintf(char&*buf,&const&char&*fmt,&...)&&&&10.&int&snprintf(char&*buf,&size_t&size,&const&char&*fmt,&...)&&&&11.&int&sscanf(const&char&*buf,&const&char&*fmt,&...)&&&&unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base)功能:将一个字符串转换成unsigend long long型数据。返回:返回转换后数据。参数:cp指向字符串的开始,endp指向分析的字符串末尾的位置,base为要用的基数(进制数),base为0表示通过cp来自动判断基数,函数自动可识别的基数:‘0x’表示16进制,‘0’表示8进制,其它都认定为10进制。函数可转换成数字的有效字符为:[0,f]。举例:cp = “0x12str”,base = 0,则返回unsigned long long为18,*endp = “str”。 参数下同。[cpp]&view plaincopystatic&ssize_t&led_brightness_store(struct&device&*dev,&&&&&&&&&&struct&device_attribute&*attr,&const&char&*buf,&size_t&size)&&{&&&&&&struct&led_classdev&*led_cdev&=&dev_get_drvdata(dev);&&&&&&ssize_t&ret&=&-EINVAL;&&&&&&char&*&&&&&&unsigned&long&state&=&simple_strtoul(buf,&&after,&10);&&&&&&size_t&count&=&after&-&&&&&&&&&if&(isspace(*after))&&&&&&&&&&count&#43;&#43;;&&&&&&&&if&(count&==&size)&{&&&&&&&&&&ret&=&&&&&&&&&&&&&if&(state&==&LED_OFF)&&&&&&&&&&&&&&led_trigger_remove(led_cdev);&&&&&&&&&&led_set_brightness(led_cdev,&state);&&&&&&}&&&&&&&&return&&&}&&unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base)功能:将一个字符串转换成unsigend long型数据。返回:返回转换后数据。int strict_strtoul(const char *cp, unsigned int base, unsigned long *res)功能:将一个字符串转换成unsigend long型。返回:转换成功返回0,否则返回负。res指向转换后的unsigned long数据。说明:该函数对cp指向的字符串严&#26684;要求,cp指向的字符串必须为真正的unsigned long形式的字符串。字符串必须以“0x”、“0”、[0,f]开始,中间全部为有效的字符[0,f],否则返回为负。它会处理字符串最后的“/n”字符。下同long long simple_strtoll(const char *cp, char **endp, unsigned int base)功能:将一个字符串转换成sigend long long型。返回:返回转换后数据。int strict_strtol(const char *cp, unsigned int base, long *res)功能:将一个字符串转换sigend long型。返回:转换成功返回0,否则返回负。res指向转换后的signed long数据。int strict_strtoull(const char *cp, unsigned int base, unsigned long long *res)功能:将一个字符串转换unsigend long long型。返回:转换成功返回0,否则返回负。res指向转换后的unsigned long long数据。int strict_strtoll(const char *cp, unsigned int base, long long *res)功能:将一个字符串转换sigend long long型。返回:转换成功返回0,否则返回负。res指向转换后的signed long long数据。int sprintf(char *buf, const char *fmt, ...)功能:&#26684;式化输出字符串,类&#20284;于printf,只是用字符串buf作为输出对象。返回:返回写入buf字符串的字符个数。int snprintf(char *buf, size_t size, const char *fmt, ...)功能:&#26684;式化输出字符串,类&#20284;于printf,只是用字符串buf作为输出对象。其中size为buf的大小(包括‘/0’字符)。返回:返回写入buf字符串的字符个数。int sscanf(const char *buf, const char *fmt, ...)功能:&#26684;式化输入字符串,类&#20284;于scanf,只是用字符串buf作为输入对象。返回:返回读取buf字符串的字符个数。lib/kasprintf[cpp]&view plaincopychar&*kasprintf(gfp_t&gfp,&const&char&*fmt,&...)&&[cpp]&view plaincopychar&*kasprintf(gfp_t&gfp,&const&char&*fmt,&...)&&char *kasprintf(gfp_t gfp, const char *fmt, ...)功能:&#26684;式化输出字符串到一段且gfp分配的内存中。返回:返回指向该内容的字符串指针。在内核/kernel/driver/.../.../中建立节点,对节点进行读写的操作static ssize_t emmc_fw_update_flag_show(struct device *dev, struct device_attribute *attr, char *buf){&&& unsigned emmc_fw_mode = 0;&&& emmc_fw_mode = __raw_readl(emmc_fw_update_ADDR);&&& /* return emmc_fw_ */&&& return sprintf(buf, &0x%X/n&, emmc_fw_mode);//&& __raw_writel(emmc_fw_version_flag, emmc_fw_update_flag);&}static ssize_t emmc_fw_update_flag_store(struct device *dev, struct device_attribute *attr,&const&char *buf, size_t count){//& return sprintf(buf, &0x%X/n&, toshiba_mmc_fw_ver);&&& printk(&caicai = %s&, buf);&&& __raw_writel(emmc_fw_version_flag, emmc_fw_update_ADDR);&&&}static DEVICE_ATTR(emmc_fw_update_flag, 0666, emmc_fw_update_flag_show, emmc_fw_update_flag_store);static struct attribute *mmc_std_attrs[] = {&&&& ...&&& &dev_attr_emmc_fw_update_flag.attr,&&&&& NULL,};编译完成之后,进入到板子相应的目录 进行读写操作/sys/class/block/.../,../...cat filenameecho xxx & filename
最新教程周点击榜
微信扫一扫& RAW硬碟格式轉為NTFS或FAT32
RAW硬碟格式轉為NTFS或FAT32
如果這篇文章有幫助到,請大方的給個讚+1!
前些日子硬碟中的分割區突然由NTFS變成RAW格是,想當然的所有檔案都無法讀取,window當然的會一直要你格式化你的硬碟,但請小心不要在這個時候去格式化,因為這樣資料就全毀了,只能靠救援軟體來救資料,但救援軟體如:Final Data也並不是100%的可以救回原本的資料,第一次遇到這個問題真的是頭很大,網路上一堆唬爛的發文講得好像是真的一樣,卻沒一個可以真正的在不傷害到資料的狀況下把磁區給還原,並還原原本的資料。這邊就是要教大家一個經我實際測試使用可行的方法讓大家參考看看,不要再浪費時間再看一些沒用的嘴砲文了XD
首先,先介紹一下今天會使用到的軟體,一共有兩套和,這兩套都是針對硬碟磁區的修復軟體,但並不能直接將RAW的格式轉回NTFS,以下我將開始介紹如何操作。上述兩套軟體都有免費的版本,所以不用費心再去尋找破解版,且都是大牌的軟體,所以就安心的下載來使用即可。
我們在電腦中還可以看到RAW格式的磁區代表著只是硬碟格式跑掉了,整個磁區是沒有問題的,所以我們執行的策略是先將磁區取消,再將磁區復原並改為NTFS格式,這樣一來就整顆好好的還原了,不要再聽信網路上一推錯誤的流言和甚麼不可能回復了,直接格式化然後用救援軟體救援就好的這種話,因為我也差點就這樣給他弄下去,一顆640GB的硬碟要救援出資料你知道要花多久時間嗎?
我先提供我這次的做法給大家參考,對於這兩套軟體比較熟悉的朋友可能有更快的做法,但我就提供我的作法給各位做參考
新增一份LOG檔
選擇你要處理的硬碟
選擇IntelPC
讓系統直接幫你做分析
系統有找到這些分割資訊,請選擇Quick Search
你有可能會看到這個畫面也可能不會,要看你的系統,按Y即可
此處你會看到你硬碟上目前的分割,假如你是第一個分割區變成RAW格式,請按你鍵盤的左右鍵,將*改成D,此目的是要將此磁區的分割取消
畫面會變成這樣,然後按Enter進入
選擇Write寫入這次的選擇,當然第一筆的*應該要是D啦,因為我已經做過了所以這邊會跟你的有點不同
做完修改之後,請記得重開機,重開機完後你會發現在我的電腦終看不到你原本的那個分割區了,因為被取消掉了,當然的在理也可以在還原磁區,但是可能是我原本的分割有問題還是怎樣的利用並無法正確的將我的磁區正確還原,所以我才選了作為我的還原工具,請不要選用一些較過時的軟體來還原,例如:pratition magic、PTDD Partition Table Doctor 這都是蠻久的東西了,畢竟老軟體某種程度上支援度有差啦~
關於你也可以參考
再來就要開始還原磁區了!!請打開並按下Next
請選擇你要還原磁區的硬碟,你會看到一區是灰色的,代表他還沒被分割,點選下一步
請選擇紅色框框的選項
選擇快速掃描,又或你時間很多也可以選擇完整掃描
請選擇你這顆硬碟裡要有哪些分割,像我有兩個分割,當然兩個都把它勾起來,第一個分割就是我要還原的分割區
最後點選Finish就會開始還原磁區分割,等跑完就可以進去我的電腦看看你的RAW格式的那槽是否已經還原並可以存取原本的資料,就這樣,光是找這些軟體跟測試我花了3天,從網路上找到的資料和測試、被騙真的是搞死人,最後整理出最可行的方法給大夥參考看看,當然的資料就回來之後請掃瞄一下你的硬碟有沒有壞軌以釐清為何會發生這樣的問題,如果你很害怕再發生就建議你要多備份,免得再發生悲劇XD
希望這篇文章已經協助你搞定了你的RAW硬碟也順利的轉換成NTFS的格式
請加入粉絲團,在粉絲團發問我比較快回覆~我還會分享好吃的唷^^
我想這篇文章應該已經幫人無數了~所以麻煩大家也來幫我增加一點經費,要不然
BLOG很花錢低XD,麻煩點一下吧~越多下當然是越好嚕~互相幫忙一下嚕~感嗯!!!
如果文章有幫助到您,請不吝的給本站贊助,任何的鼓勵都是分享的動力!
Categories:
目前尚無任何 trackbacks 和 pingbacks。}

我要回帖

更多关于 华为手机显示耳机模式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信