# Read text file julia: fscanf in Julia:

**URL:** https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980
**Category:** New to Julia
**Tags:** question, matlab, io
**Created:** [May 7, 2019, 10:23pm UTC](https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980 "2019-05-07T22:23:42Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Aquaman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquaman/32/6586_2.png) [@Aquaman](https://discourse.julialang.org/u/Aquaman)
#### Post date: [May 7, 2019, 10:23pm UTC](https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980/1 "2019-05-07T22:23:42Z")

</div>

Hi everyone,

How can I read text file in the following way (matlab) in Julia?

or how can we use the similar function `A = fscanf(fileID` ,[`formatSpec`](https://de.mathworks.com/help/matlab/ref/fscanf.html#bt_j35z-1-formatSpec),[`sizeA`](https://de.mathworks.com/help/matlab/ref/fscanf.html#bt_j35z-1-sizeA)) in Julia?

**Matlab**

```julia
global ttn;
ttn= fopen('test.txt','r');
%--- read the input data:
n1=fscanf(ttn,'%d',1);
n2=fscanf(ttn,'%d',1);
n3=fscanf(ttn,'%d',1);
n4=fscanf(ttn,'%d',1);

```

**test.txt:**

```julia

4000 3000 178 30

```

Output:

**n1=4000**  
**n2=3000**  
**n3=178**  
**n4=30**

---

<div class="post-metadata">

### Author: ![KajWiik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kajwiik/32/199_2.png) [@KajWiik](https://discourse.julialang.org/u/KajWiik)
#### Post date: [May 7, 2019, 10:35pm UTC](https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980/2 "2019-05-07T22:35:56Z")

</div>

See  
[https://docs.julialang.org/en/v1.1/stdlib/DelimitedFiles/#Delimited-Files-1](https://docs.julialang.org/en/v1.1/stdlib/DelimitedFiles/#Delimited-Files-1)

---

<div class="post-metadata">

### Author: ![Aquaman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquaman/32/6586_2.png) [@Aquaman](https://discourse.julialang.org/u/Aquaman)
#### Post date: [May 7, 2019, 10:41pm UTC](https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980/3 "2019-05-07T22:41:19Z")

</div>

Sure it is a method, namely: I can convert text to vect: **A** ; then n1=A[1], n2=A[2],… but not efficient for me

---

<div class="post-metadata">

### Author: ![KajWiik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kajwiik/32/199_2.png) [@KajWiik](https://discourse.julialang.org/u/KajWiik)
#### Post date: [May 7, 2019, 10:53pm UTC](https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980/4 "2019-05-07T22:53:48Z")

</div>

```julia
(n1,n2,n3,n4) = readdlm("test.txt", Int)

```

Also [Strings · The Julia Language](https://docs.julialang.org/en/v1.1/manual/strings/#Regular-Expressions-1) is useful read.

---

<div class="post-metadata">

### Author: ![Aquaman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquaman/32/6586_2.png) [@Aquaman](https://discourse.julialang.org/u/Aquaman)
#### Post date: [May 7, 2019, 10:58pm UTC](https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980/5 "2019-05-07T22:58:38Z")

</div>

@KajWiik , thanks a lot!

If txt file is much more complex, how can we read namely:

**test.txt:**

```julia
4000 3000 178 30
1 2 3 4
3 4 5 6
1.0 2.0
3.0 1.0
3.0 4.0 
4.0 5.0
1 2 3
4 5 6
4 5 6 

```

_ **Output** _  
**n1=4000**  
**n2=3000**  
**n3=178**  
**n4=30**

**A:**  
**1 2 3 4**  
**3 4 5 6**

**B:** \>

> 1.0 2.0  
> 3.0 1.0  
> 3.0 4.0  
> 4.0 5.0

**C**  
**1 2 3**  
**4 5 6**  
**4 5 6**

---

<div class="post-metadata">

### Author: ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)
#### Post date: [May 7, 2019, 11:34pm UTC](https://discourse.julialang.org/t/read-text-file-julia-fscanf-in-julia/23980/6 "2019-05-07T23:34:38Z")

</div>

You follow the same method as described in the previous posts and process each line one at a time in a loop. Presumably the first numbers tell you how many lines of each type there are, so you write for loops with those lengths.
